[Gelöst] condition c01: Argument "657.02 Watt" isn't numeric in numeric gt (>)

Begonnen von ole30419, 25 März 2019, 14:08:17

Vorheriges Thema - Nächstes Thema

ole30419

Hallo ich bekomme es leider nicht alleine hin.... :-[

Ich habe eine DOIF regel:
defmod PV_Laden_verzAus DOIF ([PV_Module_aktuell_Watt:state] > [PV_Watt_Wert:state] ) (set Anzeige_Laden_aktiv on) DOELSE (set Anzeige_Laden_aktiv off)

und bekommen immer die Warnung "Argument "657.02 Watt" isn't numeric in numeric gt (>)"
Ich muss also wenn ich ">" benutze das "Watt" aus dem Argument "PV_Module_aktuell_Watt:state" filtern....
ABER WIE?

setstate PV_Laden_verzAus 2019-03-25 14:03:43 e_PV_Module_aktuell_Watt_state 2442.53 Watt

Für Eure Hilfe wäre ich sehr dankbar.....
MfG Ole

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

ole30419

Hallo CoolTux

super danke klappt........

Und damit ich das vielleicht verstehe ":d" filter alle Buchstaben ?
MfG Ole

KernSani

Zitat von: ole30419 am 25 März 2019, 14:57:47
Hallo CoolTux

super danke klappt........

Und damit ich das vielleicht verstehe ":d" filter alle Buchstaben ?
Oder "Finde die erste Zahl" - Schreibst (du noch ein [Gelöst] vor das Subject des ersten Posts? Danke :-)
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

ole30419

Habe nämlich noch so eine DOIF regel:

defmod WPein DOIF ([9:00-21:00] and (([TempRL:temperature:d] < 22.5 and [TempAT:temperature:d]>[TempAT_Wert:state]) or [Taster_manuell_ein] eq "on") and [Brenner_sperren_WP] eq "cmd_1" and ([+00:04])) (set RelMV off) (set RelVL off)(set Taster_manuell_ein off)

Fehlermeldung:
warning   condition c01: Argument "" isn't numeric in numeric gt (>)

TempRL 0.0°C GPIO4
und da klappt es leider nicht mit "[TempRL:temperature:d]"

oder bezieht sich die Fehlermeldung hier nicht auf TempRL ?

MfG Ole

CoolTux

Das :d bedeutet Filter nach numerischen Werten. Es wird also der Wert des Reading eingelesen und nur die numerischen Werte vom Ergebnis für die weitere Verarbeitung verwendet.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

KernSani

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

ole30419

ja stimmt da war nicht nur Zahlen.....
TempAT_Wert 8.0°C dummy

Danke an alle ...... und immer wieder SUPER hier mit EUCH  ;D 8) :-*
MfG Ole

ole30419

oh-je ...  zuführe gefreut, Fehlermeldung ist immer noch da
LOG:
2019.03.26 10:14:21 3: eval: WPaus: warning in condition c01
2019.03.26 10:14:21 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 65953) line 1.
2019.03.26 10:14:21 3: eval: Brenner_sperren_WP: warning in condition c01
2019.03.26 10:14:21 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 65954) line 1.
2019.03.26 10:14:21 3: eval: WPaus: warning in condition c01


habe die DOIF Regel mit Eure Hilfe so angepasst.

defmod WPein DOIF ([9:00-21:00] and (([TempRL:temperature:d] < [TempRL_EIN:state:d] and [TempAT:temperature:d]>[TempAT_Wert:state:d]) or [Taster_manuell_ein] eq "on") and [Brenner_sperren_WP] eq "cmd_1" and ([+00:04])) (set RelMV off) (set RelVL off)(set Taster_manuell_ein off)


es funktioniert ja aber das LOG wird damit vollgeschrieben.... :'(
MfG Ole

Damian

Zitat von: ole30419 am 26 März 2019, 10:18:48
oh-je ...  zuführe gefreut, Fehlermeldung ist immer noch da
LOG:
2019.03.26 10:14:21 3: eval: WPaus: warning in condition c01
2019.03.26 10:14:21 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 65953) line 1.
2019.03.26 10:14:21 3: eval: Brenner_sperren_WP: warning in condition c01
2019.03.26 10:14:21 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 65954) line 1.
2019.03.26 10:14:21 3: eval: WPaus: warning in condition c01


habe die DOIF Regel mit Eure Hilfe so angepasst.

defmod WPein DOIF ([9:00-21:00] and (([TempRL:temperature:d] < [TempRL_EIN:state:d] and [TempAT:temperature:d]>[TempAT_Wert:state:d]) or [Taster_manuell_ein] eq "on") and [Brenner_sperren_WP] eq "cmd_1" and ([+00:04])) (set RelMV off) (set RelVL off)(set Taster_manuell_ein off)


es funktioniert ja aber das LOG wird damit vollgeschrieben.... :'(

Es dürfte aber nicht mehr von diesem geänderten DOIF kommen.

Edit:

2019.03.26 10:14:21 3: eval: WPaus: warning in condition c01

Wpaus kommt in der Bedingung gar nicht vor.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

ole30419

Ja, ok. Habe nun auch in allen andern DOIF das ":d" eingefügt leider mit dem selben Ergebnis.

Hier das DOIF für WPaus
defmod WPaus DOIF ((([TempRL:temperature:d] > [TempRL_Aus:state:d] and [Taster_manuell_ein] eq "off")) or [WWmitGas] eq "on") (set RelMV on) (set RelVL on)

LOG:
2019.03.26 12:44:08 3: eval: WPaus: warning in condition c01
2019.03.26 12:44:08 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 95) line 1.
2019.03.26 12:44:08 3: eval: Brenner_sperren_WP: warning in condition c01
2019.03.26 12:44:08 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 96) line 1.
2019.03.26 12:44:08 3: eval: WPaus: warning in condition c01
2019.03.26 12:44:08 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 97) line 1.
2019.03.26 12:44:08 3: eval: Brenner_sperren_WP: warning in condition c01
2019.03.26 12:44:08 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 98) line 1.
2019.03.26 12:44:08 3: eval: WPaus: warning in condition c01
2019.03.26 12:44:48 1: PERL WARNING: Argument "" isn't numeric in numeric lt (<) at (eval 105) line 1.
2019.03.26 12:44:48 3: eval: WPein: warning in condition c01
2019.03.26 12:44:48 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 105) line 1.
2019.03.26 12:44:48 3: eval: WPein: warning in condition c01


ich verzweifeln noch.... :-[
MfG Ole

Damian

Um das Problem einzukreisen kannst du deine gefilterten Readings in DOIF-Readings auslagern:

defmod WPaus DOIF ((([$SELF:rl] > [$SELF:rl_aus] and [Taster_manuell_ein] eq "off")) or [WWmitGas] eq "on") (set RelMV on) (set RelVL on)

attr WPaus DOIF_Readings rl:[TempRL:temperature:d], rl_aus:[TempRL_Aus:state:d]


Auf diese Weise siehst du im Reading rl und rl_aus des DOIFs wie deine Werte nach dem Filtern nach Zahlen aussehen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

ole30419

Ja, habe ich gemacht. Da wird im Reading rl kein wert angegeben. Jetzt schaue ich erstmals warum da kein Temperatur wert kommt.

Es liegt also definitiv nicht an der DOIF Regel und am Filtern mit :d.

DANKE damit bin ich schon sehr viel  weiter gekommen.
MfG Ole