Hallo,
ich bekomme in einer DOIF Anweisung ein error reading (error {IstVerbrauch()}: 1445792702.10954), obwohl eigentlich alles so funktioniert wie es soll:
Hier das DOIF:
Internals:
CFGFN
DEF ([EnergieZaehler:Pinlevel] eq "low") ({IstVerbrauch()})
NAME pinLow
NR 2500
NTFY_ORDER 50-pinLow
STATE cmd_1
TYPE DOIF
Readings:
2015-10-25 18:05:02 Device EnergieZaehler
2015-10-25 18:05:02 cmd_event EnergieZaehler
2015-10-25 18:05:02 cmd_nr 1
2015-10-25 18:05:02 e_EnergieZaehler_Pinlevel low
2015-10-25 18:05:02 error {IstVerbrauch()}: 1445792702.10954
2015-10-25 18:05:02 state cmd_1
Condition:
0 ReadingValDoIf('EnergieZaehler','Pinlevel','') eq "low"
Devices:
0 EnergieZaehler
all EnergieZaehler
Do:
0:
0 {IstVerbrauch()}
Helper:
globalinit 1
last_timer 0
sleeptimer -1
Internals:
Itimer:
Readings:
0 EnergieZaehler:Pinlevel
all EnergieZaehler:Pinlevel
State:
Timerfunc:
Trigger:
Attributes:
do always
loglevel 0
room Energie
die PERL Subroutine:
package main;
use strict;
use warnings;
use POSIX;
use Time::HiRes qw(gettimeofday);
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
my $oldTime = 0;
my $MomentanVerbrauch = 0;
}
# Enter you functions below _this_ line.
sub IstVerbrauch () {
my $temp = gettimeofday();
$main::MomentanVerbrauch = 48000/($temp - $main::oldTime);
fhem ("set MomentanVerbrauch $main::MomentanVerbrauch");
$main::oldTime = $temp;
}
In FHEM ist ein Dummy MomentanVerbrauch definiert, der korrekt jeweils mit dem aktuellen Wert beschrieben wird.
Warum existiert im DOIF dieses error Reading?
Hat jemand eine Idee?
Danke schon mal vorab
Gruß
Harald
Zitat von: harry-th am 25 Oktober 2015, 18:19:44
Hallo,
ich bekomme in einer DOIF Anweisung ein error reading (error {IstVerbrauch()}: 1445792702.10954), obwohl eigentlich alles so funktioniert wie es soll:
Hier das DOIF:
Internals:
CFGFN
DEF ([EnergieZaehler:Pinlevel] eq "low") ({IstVerbrauch()})
NAME pinLow
NR 2500
NTFY_ORDER 50-pinLow
STATE cmd_1
TYPE DOIF
Readings:
2015-10-25 18:05:02 Device EnergieZaehler
2015-10-25 18:05:02 cmd_event EnergieZaehler
2015-10-25 18:05:02 cmd_nr 1
2015-10-25 18:05:02 e_EnergieZaehler_Pinlevel low
2015-10-25 18:05:02 error {IstVerbrauch()}: 1445792702.10954
2015-10-25 18:05:02 state cmd_1
Condition:
0 ReadingValDoIf('EnergieZaehler','Pinlevel','') eq "low"
Devices:
0 EnergieZaehler
all EnergieZaehler
Do:
0:
0 {IstVerbrauch()}
Helper:
globalinit 1
last_timer 0
sleeptimer -1
Internals:
Itimer:
Readings:
0 EnergieZaehler:Pinlevel
all EnergieZaehler:Pinlevel
State:
Timerfunc:
Trigger:
Attributes:
do always
loglevel 0
room Energie
die PERL Subroutine:
package main;
use strict;
use warnings;
use POSIX;
use Time::HiRes qw(gettimeofday);
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
my $oldTime = 0;
my $MomentanVerbrauch = 0;
}
# Enter you functions below _this_ line.
sub IstVerbrauch () {
my $temp = gettimeofday();
$main::MomentanVerbrauch = 48000/($temp - $main::oldTime);
fhem ("set MomentanVerbrauch $main::MomentanVerbrauch");
$main::oldTime = $temp;
}
In FHEM ist ein Dummy MomentanVerbrauch definiert, der korrekt jeweils mit dem aktuellen Wert beschrieben wird.
Warum existiert im DOIF dieses error Reading?
Hat jemand eine Idee?
Danke schon mal vorab
Gruß
Harald
Deine Routine muss einen Returncode: 0 "" oder undef liefern.
Gruß
Damian