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.....
[PV_Module_aktuell_Watt:state:d]
So sollte es klappen
Hallo CoolTux
super danke klappt........
Und damit ich das vielleicht verstehe ":d" filter alle Buchstaben ?
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 :-)
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 ?
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.
[TempAT_Wert:state] wird nicht numerisch sein.
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.
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) :-*
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.... :'(
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.
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.... :-[
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.
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.