DOIF mehrere Bedingungen wahr für Aktion

Begonnen von elmer, 29 Mai 2017, 17:44:54

Vorheriges Thema - Nächstes Thema

elmer

Ok, also das ausführende Decice hat ein Event gesendet und deshalb ist die Markise raus. Sobald also nach 16:00 alle Bedingungen wahr sind wartet DOIF auf das nächste Event vom Gerät das Getriggert wird und schaltet auf cmd1.

Wird dann bei jedem Event state mit gesendet weil die Markise raus ist, wenn ja verhalten sich alle Geräte so, das ist schwer zu verstehen für einen Neuling wie mich ;D

Ellert

Welche Events zusammen gesendet werden, siehst Du im Eventmonitor, siehe https://wiki.fhem.de/wiki/Event

Wenn Du nur auf bestimmte Readings triggern möchtest, schau Dir mal das Attribut "checkReadingEvent" an.

elmer

Ich habe gerade gesehen das mein Log voll läuft mit dieser Fehlermeldung, kann jemand damit etwas anfangen.

2017.05.30 20:02:43 1: Error: >Schattenplus_auto_open< has no TYPE, but following keys: >READINGS<
2017.05.30 20:02:43 1: Error: >Schattenplus_automatsch_auf< has no TYPE, but following keys: >READINGS<



Hier noch ein list vom DOIF:
Internals:
   CFGFN
   DEF        ([15:45-20:00] and [tahoma_1026532] eq "open" and [?wetter_eigheim:windSpeed] < 3 and [?Alle_Bewohner] eq "present" and [?HM_34C809_Rain] eq "dry") (set Markise 70) DOELSE (set Markise off)
   NAME       Schattenplus_auf
   NR         1870
   NTFY_ORDER 50-Schattenplus_auf
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2017-05-31 20:54:21   Device          tahoma_1026532
     2017-05-31 20:00:00   cmd             2
     2017-05-31 20:00:00   cmd_event       timer_2
     2017-05-31 20:00:00   cmd_nr          2
     2017-05-31 20:54:21   e_tahoma_1026532_STATE closed
     2017-05-31 20:00:00   state           cmd_2
     2017-05-31 20:00:00   timer_01_c01    01.06.2017 15:45:00
     2017-05-31 20:00:00   timer_02_c01    01.06.2017 20:00:00
   Condition:
     0          DOIF_time($hash,0,1,$wday,$hms) and InternalDoIf($hash,'tahoma_1026532','STATE') eq "open" and ReadingValDoIf($hash,'wetter_eigheim','windSpeed') < 3 and InternalDoIf($hash,'Alle_Bewohner','STATE') eq "present" and InternalDoIf($hash,'HM_34C809_Rain','STATE') eq "dry"
   Days:
   Devices:
     0           tahoma_1026532
     all         tahoma_1026532
   Do:
     0:
       0          set Markise 70
     1:
       0          set Markise off
   Helper:
     event      RSSILevelState: 66.0
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   tahoma_1026532
     timerevent RSSILevelState: 66.0
     triggerDev tahoma_1026532
     timerevents:
       RSSILevelState: 66.0
     timereventsState:
       RSSILevelState: 66.0
     triggerEvents:
       RSSILevelState: 66.0
     triggerEventsState:
       RSSILevelState: 66.0
   Internals:
     0           tahoma_1026532:STATE Alle_Bewohner:STATE HM_34C809_Rain:STATE
     all         tahoma_1026532:STATE Alle_Bewohner:STATE HM_34C809_Rain:STATE
   Interval:
     0          -1
     1          0
   Itimer:
   Localtime:
     0          1496324700
     1          1496340000
   Readings:
   Realtime:
     0          15:45:00
     1          20:00:00
   Regexp:
     0:
     All:
   State:
     State:
   Time:
     0          15:45:00
     1          20:00:00
   Timecond:
     0          0
     1          0
   Timer:
     0          0
     1          0
   Timers:
     0           0  1
   Trigger:
   Triggertime:
     1496324700:
       localtime  1496324700
       Hash:
     1496340000:
       localtime  1496340000
       Hash:
Attributes:

amenomade

Hier wäre eigentlich ein list von Schattenplus_auto_open und von Schattenplus_automatsch_auf interessanter :)

So wie das Ergebnis vom folgenden Befehl:
{ join(",", grep { !$defs{$_}{TYPE} } keys %defs) }
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

elmer

#19
Ich bin gerade unterwegs, aber das ist ja das komische Schattenplus_auto_open und von Schattenplus_automatsch_auf gibt es gar nicht. Ich glaube das waren meinen erste Versuche das DOIF zu erstellen aber da ich bei beiden Veruchen einen Fegler hatte, hat es mit einer Fehlermeldung abgebrochen.

Ist es möglich das bei Fhem temporär noch etwas von diesen Versuchen vorhanden ist und bei einem Neustart von Fhem verschwindet?

pc1246

Nein
Du hast ja schon gespeichert! Jetzt kommen wir aber ganz an den Anfang von fhem: Schau mal in unsorted, da findest du diese DOIFs wieder!
Gruss Christoph
HP T610
Onkyo_AVR;Enigma2; SB_Server; SB_Player; HM-USB; PhilipsTV; harmony hub; Jeelink mit PCA301; Somfy; S7-300; LGW; HUE; HM-IP auf Charly; div

elmer

Nein, die sind nicht vorhanden, auch nicht mit list.

amenomade

Und mit { join(",", grep { !$defs{$_}{TYPE} } keys %defs) } ?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

nils_

wie hast du denn deine alten DOIF's gelöscht?

fhem.cfg bearbeitet?
WebInterface??
viele Wege in FHEM es gibt!

pc1246

Zitat von: nils_ am 01 Juni 2017, 09:24:05
wie hast du denn deine alten DOIF's gelöscht?

fhem.cfg bearbeitet?
WebInterface??
Ein Schelm, der boeses dabei denkt!
Gruss Christoph
HP T610
Onkyo_AVR;Enigma2; SB_Server; SB_Player; HM-USB; PhilipsTV; harmony hub; Jeelink mit PCA301; Somfy; S7-300; LGW; HUE; HM-IP auf Charly; div

elmer

#25
Zitat von: amenomade am 01 Juni 2017, 08:28:42
Und mit { join(",", grep { !$defs{$_}{TYPE} } keys %defs) } ?

Hie bekomme ich nur eine Fehlermeldung:
{ join(",", grep { 0defs{$_}{TYPE} } keys %defs) }
-bash: syntax error near unexpected token `",",'


Und gelöscht habe ich nichts, da wie gesagt bei 2 Versuchen das DOIF zu erstellen von fhem eine Fehlermeldung kam und das ganze abgebrochen wurde, deshalb kann es doch auch nicht sein das etwas vorhanden ist.

Hier noch die fhem Meldungen die beim erstellen vom DOIF gekommen sind:

Schattenplus_automatsch_auf DOIF: expected DOELSEIF or DOELSE:  and ([wetter_eigheim:windSpeed] < 3) and ([HM_34C809_Rain:"dry"]) ( set Markise closed ) DOELSE (set Markise open)
Schattenplus_auto_open DOIF: expected DOELSEIF or DOELSE:  and ([wetter_eigheim:windSpeed] < 3) and ([HM_34C809_Rain:"dry"]) ( set Markise closed ) DOELSE (set Markise open)
Argument "100 %" isn't numeric in numeric lt (<) at (eval 33307) line 1.

pc1246

Das du etwas anderes eingegeben hast als amenomade vorgeschlagen hat ist Dir aber aufgefallen?
Gruss
HP T610
Onkyo_AVR;Enigma2; SB_Server; SB_Player; HM-USB; PhilipsTV; harmony hub; Jeelink mit PCA301; Somfy; S7-300; LGW; HUE; HM-IP auf Charly; div

elmer

#27
Was ist.......

Ok beim nochmaligen lesen wriss ich was du gemeint hast, man sollte wärend man Auto fährt nicht lesen ;D

elmer

#28
Ok, eben noch mal nachgeschaut und es hat gepasst was ich eingegeben habe.

pi@raspberrypi:~ $ { join(",", grep { !$defs{$_}{TYPE} } keys %defs) }
{ join(",", grep { 0defs{$_}{TYPE} } keys %defs) }
-bash: syntax error near unexpected token `",",'



Ich habe heute früh zur Sicherheit doch mal einen Neustart gemacht und bisher sieht das Log sauber aus, mal sehen ob es nach 16 Uhr wieder zugemüllt wird.
2017.06.01 00:01:00 3: addLog return value: SCALAR(0x471c7c0)
2017.06.01 00:14:24 3: UWZ Unwetterzentrale: Run.964 Done fetching data
2017.06.01 01:14:24 3: UWZ Unwetterzentrale: Run.964 Done fetching data
2017.06.01 02:14:24 3: UWZ Unwetterzentrale: Run.964 Done fetching data
2017.06.01 02:55:33 3: tahoma1: request active
2017.06.01 02:55:35 3: tahoma1: request active
2017.06.01 02:55:37 3: tahoma1: request active
2017.06.01 03:00:05 3: tahoma1: request active
2017.06.01 03:00:07 3: tahoma1: request active
2017.06.01 03:14:24 3: UWZ Unwetterzentrale: Run.964 Done fetching data
2017.06.01 04:14:24 3: UWZ Unwetterzentrale: Run.964 Done fetching data
2017.06.01 05:14:24 3: UWZ Unwetterzentrale: Run.964 Done fetching data
2017.06.01 06:14:24 3: UWZ Unwetterzentrale: Run.964 Done fetching data
2017.06.01 07:14:24 3: UWZ Unwetterzentrale: Run.964 Done fetching data
2017.06.01 08:14:24 3: UWZ Unwetterzentrale: Run.964 Done fetching data
2017.06.01 09:14:24 3: UWZ Unwetterzentrale: Run.964 Done fetching data
2017.06.01 10:14:24 3: UWZ Unwetterzentrale: Run.964 Done fetching data
2017.06.01 11:14:24 3: UWZ Unwetterzentrale: Run.964 Done fetching data
2017.06.01 12:14:24 3: UWZ Unwetterzentrale: Run.964 Done fetching data
2017.06.01 13:14:24 3: UWZ Unwetterzentrale: Run.964 Done fetching data
Argument "100 %" isn't numeric in numeric lt (<) at (eval 92995) line 1.
Argument "100 %" isn't numeric in numeric lt (<) at (eval 93008) line 1.
2017.06.01 13:41:57 3: FBDECT set FBDECT_Fritzbox_22 on
2017.06.01 13:49:38 3: CUL_1: Unknown code YsAA49024A010000, help me!
2017.06.01 13:49:40 3: CUL_1: Unknown code YsAB1C024B010000, help me!
2017.06.01 14:14:24 3: UWZ Unwetterzentrale: Run.964 Done fetching data
2017.06.01 14:45:07 3: tahoma1: tahoma_dispatch json string is faulty
2017.06.01 14:45:09 3: tahoma1: tahoma_login
2017.06.01 14:45:09 2: tahoma1: login start
2017.06.01 14:45:09 2: tahoma1: login end, logged_in=1
2017.06.01 14:45:13 2: tahoma1: tahoma_autocreate begin
2017.06.01 14:45:13 2: tahoma1: tahoma_autocreate end, new=0
2017.06.01 14:45:13 3: tahoma1: tahoma_updateDevices
2017.06.01 14:45:13 3: tahoma1: updateDevices device=io://0803-1025-4201/3738050
2017.06.01 14:45:15 2: tahoma1: tahoma_autocreate begin
2017.06.01 14:45:15 2: tahoma1: tahoma_autocreate end, new=0
2017.06.01 14:45:15 3: tahoma1: tahoma_updateDevices
2017.06.01 14:45:15 3: tahoma1: updateDevices device=io://0803-1025-4201/3738050
2017.06.01 15:14:24 3: UWZ Unwetterzentrale: Run.964 Done fetching data



Jetzt ist es 19 Uhr und noch immer keine Einträge im Log zu sehen, der Neustart von Fhem hat anscheinend das Problem von alleine gelöst.