Ich bekomme neuerdings immer folgende Warnung und damit damit nichts anfangen.
<div class='fhemlog'>2019.11.18 19:06:29 1 : PERL WARNING: Argument ".*" isn't numeric in numeric lt (<) at fhem.pl line 4816, <GEN13497> line 39904.</div>2019-11-18 19:06:29 RPI_GPIO GPIO3 Counter: 66665
2019.11.18 19:06:29 1 : PERL WARNING: Argument ".*" isn't numeric in numeric lt (<) at fhem.pl line 4816, <GEN13497> line 39905.
Hier ist die Definition von GPIO3
Internals:
CHANGED
DEF 3
EXCEPT_FD 13
FUUID 5dcc19bf-f33f-8b20-6459-05622a4fb601fda2
GPIO_Basedir /sys/class/gpio
GPIO_Nr 3
NAME GPIO3
NR 242
STATE off
TYPE RPI_GPIO
WiringPi_gpio /usr/bin/gpio
lasttrg 1574100450.7373
Helper:
DBLOG:
actualEnergyUnitValue:
dbLog:
TIME 1574099899.03499
VALUE 5094.667
actualFullThermicEnergy:
dbLog:
TIME 1574100076.8709
VALUE 20260
OLDREADINGS:
READINGS:
2019-11-18 19:07:30 Counter 66696
2019-11-18 19:07:24 Dblclick on
2019-11-18 19:07:30 Pinlevel low
2019-11-18 19:07:30 actualEnergyUnitValue 5094.934
2019-11-18 19:07:30 actualFullThermicEnergy 20260
2019-11-17 19:52:16 initialEnergyUnitValue 5028.238
2019-11-16 21:51:39 lastDiffMonthElectricEnergy -
2019-11-16 21:51:39 lastDiffMonthThermicEnergy -
2019-11-18 19:07:30 state off
fhem:
interfaces switch
Attributes:
active_low no
alias DimplexEnergyCalculator
direction input
event-on-change-reading Counter:.*,Dblclick:.*,Pinlevel:.*,actualEnergyUnitValue:0.5,actualFullThermicEnergy:.*,state:.*,lastDiffDayElectricEnergy:.*,lastDiffDayThermicEnergy:.*,lastDayJAZ:.*
interrupt falling
room Dimplex
userReadings actualEnergyUnitValue { ReadingsVal("GPIO3","initialEnergyUnitValue","") + (ReadingsVal("GPIO3","Counter","")/1000) },
actualFullThermicEnergy {(ReadingsVal("dim_WaermemengeHeizen01", "state",0) + (ReadingsVal("dim_WaermemengeHeizen02", "state",0) * 10000) + (ReadingsVal("dim_WaermemengeHeizen03", "state",0) * 100000)) + (ReadingsVal("dim_WaermemengeWarmwasser01", "state",0) + (ReadingsVal("dim_WaermemengeWarmwasser02", "state",0) * 10000) + (ReadingsVal("dim_WaermemengeWarmwasser03", "state",0) * 100000))},
lastDiffDayElectricEnergy{DbReadingsVal("dbRepDimplex","GPIO3:diff_day_actualFullElectricEnergy",FmtDateTime(time),"") },
lastDiffDayThermicEnergy{DbReadingsVal("dbRepDimplex","GPIO3:diff_day_actualFullThermicEnergy",FmtDateTime(time),"") },
lastDayJAZ{(DbReadingsVal("dbRepDimplex","GPIO3:diff_day_actualFullThermicEnergy",FmtDateTime(time),"")) / (DbReadingsVal("dbRepDimplex","GPIO3:diff_day_actualFullElectricEnergy",FmtDateTime(time),""))}
Und hier die Ausgabe vom Stacktrace der PERL-Warnung
2019.11.18 18:58:48 5: GPIO3, in fileaccess: edge
2019.11.18 18:58:48 5: Toggle war nicht def
2019.11.18 18:58:48 5: Toggle ist jetzt on
2019.11.18 18:58:48 5: Zaehler ist jetzt 66443
2019.11.18 18:58:48 1: PERL WARNING: Argument ".*" isn't numeric in numeric lt (<) at fhem.pl line 4816, <GEN13497> line 39522.
2019.11.18 18:58:48 5: Starting notify loop for GPIO3, 1 event(s), first is Counter: 66443
2019.11.18 18:58:48 4: DbLog dbLog -> ################################################################
2019.11.18 18:58:48 4: DbLog dbLog -> ### start of new Logcycle ###
2019.11.18 18:58:48 4: DbLog dbLog -> ################################################################
2019.11.18 18:58:48 4: DbLog dbLog -> number of events received: 1 for device: GPIO3
2019.11.18 18:58:48 4: DbLog dbLog -> check Device: GPIO3 , Event: Counter: 66443
2019.11.18 18:58:48 5: End notify loop for GPIO3
2019.11.18 18:58:49 5: GPIO3, in fileaccess: edge
2019.11.18 18:58:49 1: PERL WARNING: Argument ".*" isn't numeric in numeric lt (<) at fhem.pl line 4816, <GEN13497> line 39523.
Die Meldung kommt immer dann, wenn sich das Reading "Counter" ändert. Kann mir hier jemand bitte einen Tipp geben? Danke :-)
Versuche mal bei deinen userReadings ReadingsNum statt ReadingVal
event-on-change-reading ist auch falsch
Zitat von: CommandRefevent-on-change-reading
Dieses Attribut enthält eine durch Kommata getrennte Liste von "readings". Wenn gesetzt, erzeugen nur Veränderungen der gelisteten "readings" ein Ereignis. Wenn die aktualiserten Werte der gelisteten "readings" identisch sind, wird kein Ereignis generiert.
Wenn hinter dem Namen eines "readings" eine :Schwelle angegeben ist, wird das Event nur getriggert wenn die Änderung grösser als diese Schwelle ist.
Also wenn keine Schwelle von numerischen Readings, einfach nur den Readingsname benutzen, ohne :.*
actualEnergyUnitValue:0.5 könnte gehen
state:.* bestimmt nicht
Vorschlag:
Counter,Dblclick,Pinlevel,actualEnergyUnitValue:0.5,actualFullThermicEnergy,state,lastDiffDayElectricEnergy,lastDiffDayThermicEnergy,lastDayJAZ
@amenomade
Das war das Problem. Was für ein peinlicher Fehler. Danke. :-)
@Shadow3561
Auch dir vielen Dank für deinen Hinweis.