FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: ole30419 am 25 März 2019, 14:08:17

Titel: [Gelöst] condition c01: Argument "657.02 Watt" isn't numeric in numeric gt (>)
Beitrag von: ole30419 am 25 März 2019, 14:08:17
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.....
Titel: Antw:warning condition c01: Argument "657.02 Watt" isn't numeric in numeric gt (>)
Beitrag von: CoolTux am 25 März 2019, 14:11:05
[PV_Module_aktuell_Watt:state:d]

So sollte es klappen
Titel: Antw:warning condition c01: Argument "657.02 Watt" isn't numeric in numeric gt (>)
Beitrag 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 ?
Titel: Antw:warning condition c01: Argument "657.02 Watt" isn't numeric in numeric gt (>)
Beitrag von: KernSani am 25 März 2019, 15:03:29
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 :-)
Titel: Antw:warning condition c01: Argument "657.02 Watt" isn't numeric in numeric gt (>)
Beitrag von: ole30419 am 25 März 2019, 15:09:27
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 ?

Titel: Antw:warning condition c01: Argument "657.02 Watt" isn't numeric in numeric gt (>)
Beitrag von: CoolTux am 25 März 2019, 15:22:28
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.
Titel: Antw:warning condition c01: Argument "657.02 Watt" isn't numeric in numeric gt (>)
Beitrag von: Damian am 25 März 2019, 15:40:25
[TempAT_Wert:state] wird nicht numerisch sein.
Titel: Antw:warning condition c01: Argument "657.02 Watt" isn't numeric in numeric gt (>)
Beitrag von: KernSani am 25 März 2019, 15:43:34
Zitat von: Damian am 25 März 2019, 15:40:25
[TempAT_Wert:state] wird nicht numerisch sein.
Exakt. da wird nämlich auf ">" geprüft.
Titel: Antw:[Gelöst] condition c01: Argument "657.02 Watt" isn't numeric in numeric gt (>)
Beitrag von: ole30419 am 26 März 2019, 08:32:22
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) :-*
Titel: Antw:[Gelöst] condition c01: Argument "657.02 Watt" isn't numeric in numeric gt (>)
Beitrag 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.... :'(
Titel: Antw:[Gelöst] condition c01: Argument "657.02 Watt" isn't numeric in numeric gt (>)
Beitrag von: Damian am 26 März 2019, 10:21:50
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.
Titel: Antw:[Gelöst] condition c01: Argument "657.02 Watt" isn't numeric in numeric gt (>)
Beitrag von: ole30419 am 26 März 2019, 12:56:04
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.... :-[
Titel: Antw:[Gelöst] condition c01: Argument "657.02 Watt" isn't numeric in numeric gt (>)
Beitrag von: Damian am 26 März 2019, 13:03:31
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.
Titel: Antw:[Gelöst] condition c01: Argument "657.02 Watt" isn't numeric in numeric gt (>)
Beitrag von: ole30419 am 27 März 2019, 11:48:14
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.