Hauptmenü

neues Modul DOIF

Begonnen von Damian, 21 Mai 2014, 15:53:18

Vorheriges Thema - Nächstes Thema

Michi240281

Ich habe ein Problem mit meiner Garagenbelueftung. Jetzt gerade sind alle Bedingungen erfüllt, aber das DOIF steht immer noch auf cmd2! Jmd ne Idee, warum das so ist?

define Garagenbelueftung_feucht DOIF ([Temperatur_Garage:humidity] > 70 and [Garagentor:state] eq "closed" and [Temperatur_Garage:temperature] > 5 and [MyWeather:temperature] > 5 and [Abwesend:state] eq "nein" and [12:00-20:00] and ([MyWeather:humidity_10] < [Temperatur_Garage:humidity])) (set Garage_Schalten Lueften, define Garage_wieder_Schliessen_2 at +00:15:00 set Garage_Schalten Schliessen)
attr Garagenbelueftung_feucht cmdpause 14400
attr Garagenbelueftung_feucht room Garage




Internals:
   DEF        ([Temperatur_Garage:humidity] > 70 and [Garagentor:state] eq "closed" and [Temperatur_Garage:temperature] > 5 and [MyWeather:temperature] > 5 and [Abwesend:state] eq "nein" and [12:00-20:00] and ([MyWeather:humidity_10] < [Temperatur_Garage:humidity])) (set Garage_Schalten Lueften, define Garage_wieder_Schliessen_2 at +00:15:00 set Garage_Schalten Schliessen)
   NAME       Garagenbelueftung_feucht
   NR         564
   NTFY_ORDER 50-Garagenbelueftung_feucht
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2015-01-04 23:02:57   cmd_event       Garagentor
     2015-01-04 23:02:57   cmd_nr          2
     2015-01-05 16:02:46   e_Abwesend_state nein
     2015-01-05 16:02:45   e_Garagentor_state closed
     2015-01-05 16:02:41   e_MyWeather_humidity_10 80
     2015-01-05 16:02:41   e_MyWeather_temperature 5
     2015-01-05 16:26:33   e_Temperatur_Garage_humidity 83
     2015-01-05 16:26:33   e_Temperatur_Garage_temperature 6.7
     2015-01-04 23:02:57   state           cmd_2
     2015-01-05 12:00:00   timer_1_c1      06.01.2015 12:00:00
     2015-01-04 23:02:47   timer_2_c1      05.01.2015 20:00:00
   Condition:
     0          ReadingValDoIf('Temperatur_Garage','humidity','') > 70 and ReadingValDoIf('Garagentor','state','') eq "closed" and ReadingValDoIf('Temperatur_Garage','temperature','') > 5 and ReadingValDoIf('MyWeather','temperature','') > 5 and ReadingValDoIf('Abwesend','state','') eq "nein" and DOIF_time($hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and (ReadingValDoIf('MyWeather','humidity_10','') < ReadingValDoIf('Temperatur_Garage','humidity',''))
   Days:
   Devices:
     0           Temperatur_Garage Garagentor MyWeather Abwesend
     all         Temperatur_Garage Garagentor MyWeather Abwesend
   Do:
     0          set Garage_Schalten Lueften, define Garage_wieder_Schliessen_2 at +00:15:00 set Garage_Schalten Schliessen
   Helper:
     last_timer 2
     sleeptimer -1
   Internals:
   Readings:
     0           Temperatur_Garage:humidity Garagentor:state Temperatur_Garage:temperature MyWeather:temperature Abwesend:state MyWeather:humidity_10
     all         Temperatur_Garage:humidity Garagentor:state Temperatur_Garage:temperature MyWeather:temperature Abwesend:state MyWeather:humidity_10
   Realtime:
     0          12:00:00
     1          20:00:00
   State:
   Time:
     0          12:00:00
     1          20:00:00
   Timecond:
     0          0
     1          0
   Timer:
     0          0
     1          0
   Timerfunc:
   Timers:
     0           0  1
Attributes:
   cmdpause   14400
   room       Garage
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

Puschel74

Hallo,

ZitatJetzt gerade sind alle Bedingungen erfüllt,
Sicher?

Das einzige das mir auffällt.
[MyWeather:temperature] > 5
Zitat2015-01-05 16:02:41   e_MyWeather_temperature 5

5 ist nicht >5 sondern =5.
Sollte in der Zwischenzeit die Temp. auf 5.1 gewandert sein sollte dein DOIF auch gezündet haben.
Wenn nicht muss Damian schauen.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Michi240281

Zitat von: Puschel74 am 05 Januar 2015, 16:33:43
Hallo,
Sicher?

Das einzige das mir auffällt.
[MyWeather:temperature] > 5
5 ist nicht >5 sondern =5.
Sollte in der Zwischenzeit die Temp. auf 5.1 gewandert sein sollte dein DOIF auch gezündet haben.
Wenn nicht muss Damian schauen.

Grüße

STIMMT!!!!! Gut gesehen, vielen Dank! Habe mal auf >4 geändert und teste! DANKE!
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

Michi240281

Geht leider immer noch nicht! :-(

define Garagenbelueftung_feucht DOIF ([Temperatur_Garage:humidity] > 70 and [Garagentor:state] eq "closed" and [Temperatur_Garage:temperature] > 5 and [MyWeather:temperature] > 4 and [Abwesend:state] eq "nein" and [12:00-20:00] and ([MyWeather:humidity_10] < [Temperatur_Garage:humidity])) (set Garage_Schalten Lueften, define Garage_wieder_Schliessen_2 at +00:15:00 set Garage_Schalten Schliessen)
attr Garagenbelueftung_feucht cmdpause 14400
attr Garagenbelueftung_feucht room Garage


Internals:
   DEF        ([Temperatur_Garage:humidity] > 70 and [Garagentor:state] eq "closed" and [Temperatur_Garage:temperature] > 5 and [MyWeather:temperature] > 4 and [12:00-20:00] and [Abwesend:state] eq "nein" and ([MyWeather:humidity_10] < [Temperatur_Garage:humidity])) (set Garage_Schalten Lueften, define Garage_wieder_Schliessen_2 at +00:15:00 set Garage_Schalten Schliessen)
   NAME       Garagenbelueftung_feucht
   NR         564
   NTFY_ORDER 50-Garagenbelueftung_feucht
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2015-01-05 16:52:10   cmd_event       Garagentor
     2015-01-05 16:52:10   cmd_nr          2
     2015-01-05 16:52:19   e_Garagentor_state closed
     2015-01-05 16:51:05   e_MyWeather_humidity_10 80
     2015-01-05 16:51:05   e_MyWeather_temperature 5
     2015-01-05 16:52:09   e_Temperatur_Garage_humidity 83
     2015-01-05 16:52:09   e_Temperatur_Garage_temperature 6.7
     2015-01-05 16:52:10   state           cmd_2
     2015-01-05 16:40:52   timer_1_c1      06.01.2015 12:00:00
     2015-01-05 16:40:52   timer_2_c1      05.01.2015 20:00:00
   Condition:
     0          ReadingValDoIf('Temperatur_Garage','humidity','') > 70 and ReadingValDoIf('Garagentor','state','') eq "closed" and ReadingValDoIf('Temperatur_Garage','temperature','') > 5 and ReadingValDoIf('MyWeather','temperature','') > 4 and DOIF_time($hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and ReadingValDoIf('Abwesend','state','') eq "nein" and (ReadingValDoIf('MyWeather','humidity_10','') < ReadingValDoIf('Temperatur_Garage','humidity',''))
   Days:
   Devices:
     0           Temperatur_Garage Garagentor MyWeather Abwesend
     all         Temperatur_Garage Garagentor MyWeather Abwesend
   Do:
     0          set Garage_Schalten Lueften, define Garage_wieder_Schliessen_2 at +00:15:00 set Garage_Schalten Schliessen
   Helper:
     last_timer 2
     sleeptimer -1
   Internals:
   Readings:
     0           Temperatur_Garage:humidity Garagentor:state Temperatur_Garage:temperature MyWeather:temperature Abwesend:state MyWeather:humidity_10
     all         Temperatur_Garage:humidity Garagentor:state Temperatur_Garage:temperature MyWeather:temperature Abwesend:state MyWeather:humidity_10
   Realtime:
     0          12:00:00
     1          20:00:00
   State:
   Time:
     0          12:00:00
     1          20:00:00
   Timecond:
     0          0
     1          0
   Timer:
     0          0
     1          0
   Timerfunc:
   Timers:
     0           0  1
Attributes:
   cmdpause   14400
   room       Garage
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

Puschel74

Hallo,

ich weiß ja nicht was alles in den Readings stehen sollte aber mir fällt noch auf das ich alle Devices finde ausser Abwesend.

Zitat[Garagentor:state] eq "closed"
Zitat2015-01-05 16:52:19   e_Garagentor_state closed

Zitat[Temperatur_Garage:temperature] > 5
Zitat2015-01-05 16:52:09   e_Temperatur_Garage_temperature 6.7

Zitat[Abwesend:state] eq "nein"
???

Aber wie gesagt - Damian (und andere) sind da sicher fitter.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Michi240281

#1055
Inzwischen gehts! :-)

Offenbar muss das Modul immer erstmal jedes Reading einlesen, bevor es die Bedingung auf wahr oder falsch überprüft. Und der Status für "Abwesend" kam erst ne Weile später! Jetzt tuts! :-)

EDIT: Ich hab die Funktion nochmal ein wenig erweitert (2 Temperaturbereiche) und jetzt ein neues Problem: Der state bleibt dauerhaft auf "initialized"! Woran könnte das denn nu liegen?

define Garagenbelueftung_feucht DOIF ([Temperatur_Garage:humidity] > 60 and [Garagentor:state] eq "closed" and [Temperatur_Garage:temperature] > 3;
and [Temperatur_Garage:temperature] < 10 and ([Temperatur_Garage:temperature]-[MyWeather:temperature] < 3) and [12:00-20:00] and [Abwesend:state] eq "nein";
and ([MyWeather:humidity_10] < [Temperatur_Garage:humidity])) (set Garage_Schalten Lueften, define Garage_wieder_Schliessen_2 at +00:25:00 set Garage_Schalten Schliessen);
DOELSEIF ([Temperatur_Garage:humidity] > 60 and [Garagentor:state] eq "closed" and [Temperatur_Garage:temperature] > 9 and [Temperatur_Garage:temperature] < 25;
and ([Temperatur_Garage:temperature]-[MyWeather:temperature] < 7) and [12:00-20:00] and [Abwesend:state] eq "nein" and ([MyWeather:humidity_10] < [Temperatur_Garage:humidity]));
(set Garage_Schalten Lueften, define Garage_wieder_Schliessen_2 at +00:25:00 set Garage_Schalten Schliessen)
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

Sidey

Hallo zusammen,

ich habe noch eine Frage.  :)

Ich habe zwei DoIf Abfragen.
In der 1. Abfrage stelle ich einen dummy auf in wenn die Bedingung wahr ist.

In der 2. Abfrage (DoElse) Frage ich die gleichen Werte wie bei der 1. Abfrage und Zusätzlich noch diesen Dummy ab.

Jetzt passiert folgendes. Wenn die Erste Bdingung wahr ist, wird mein dummy auf in gesetzt.
Danach scheint das Doif erneut getriggert zu werden und die 2. Bedingung ist wahr.


([wk.PwrSw_Switch] eq "on" && [wk.PwrSw_Power:power] >= 5 && [wk.WaschmaschineWartemodus] eq "off" && [wk.Waschmaschine_Betrieb] eq "off") (set wk.WaschmaschineWartemodus on,set wk.PwrSw_Switch off)   

DOELSEIF ([wk.PwrSw_Switch] eq "on" && [wk.PwrSw_Power:power] >= 5 && [wk.WaschmaschineWartemodus] eq "on") (set wk.WaschmaschineWartemodus off,set wk.Waschmaschine_Betrieb on)   


Wie schaffe ich es, dass zwischen den Abfragen der Wert für wk.PwrSwitch neu abgefragt wird?

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

maxritti

Hallo,

mir ist etwas im FHEM Log aufgefallen.
In meinem FHEM existiert für jeden Rollo ein DOIF, welches aufgrund von Helligkeit, Fensterkontakten etc den Status des Rollos schaltet.

Nun ist mir aufgefallen, dass es u.U. zwei Schaltungen für einen Rollo gibt.

Hier mal einer der Kandidaten, welcher heute morgen auffällig geworden ist:

2015.01.07 06:40:00.030 3: CUL_HM set OG_elt_RO_Strasse on
2015.01.07 06:40:00.029 3: CUL_HM set OG_elt_RO_Strasse on


Zustande gekommen sind diese Schaltvorgänge mMn durch dieses DOIF.

   CFGFN
   DEF        ([du_Rollo_Master] eq "an" and (([EG_dr_TS_Terrasse:luminosity] < [du_Rollo_Luminosity_ru] and ([{ReadingsVal("du_Rollo_Zeit_ru_start", "state", "00:00:00")}-{ReadingsVal("du_Rollo_Zeit_ru_ende", "state", "00:00:00")}])) or [{ReadingsVal("du_Rollo_Zeit_ru_ende", "state", "00:00:00")}]))
  (set OG_elt_RO_Strasse off)
DOELSEIF ([OG_elt_RO_Strasse] ne "on" and [du_Rollo_Master] eq "an" and ([{ReadingsVal("du_Rollo_Zeit_ho", "state", "00:00:00")}] and !$we or [{ReadingsVal("du_Rollo_Zeit_ho_WE", "state", "00:00:00")}] and $we))
  (set OG_elt_RO_Strasse on)
   NAME       di_OG_elt_RO_Strasse
   NR         176
   NTFY_ORDER 50-di_OG_elt_RO_Strasse
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2015-01-07 06:40:00   cmd_event       timer_4
     2015-01-07 06:40:00   cmd_nr          2
     2015-01-07 11:39:36   e_EG_dr_TS_Terrasse_luminosity 146
     2015-01-07 06:40:20   e_OG_elt_RO_Strasse_STATE on
     2015-01-07 06:40:00   state           cmd_2
     2015-01-06 18:32:32   timer_1_c1      07.01.2015 16:10:00
     2015-01-06 21:30:00   timer_2_c1      07.01.2015 21:30:00
     2015-01-06 21:30:00   timer_3_c1      07.01.2015 21:30:00
     2015-01-07 06:40:00   timer_4_c2      08.01.2015 06:40:00
     2015-01-07 09:30:00   timer_5_c2      08.01.2015 09:30:00
   Condition:
     0          InternalDoIf('du_Rollo_Master','STATE','') eq "an" and ((ReadingValDoIf('EG_dr_TS_Terrasse','luminosity','') < InternalDoIf('du_Rollo_Luminosity_ru','STATE','') and (DOIF_time($hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,""))) or DOIF_time_once($hash->{timer}{2},$wday,""))
     1          InternalDoIf('OG_elt_RO_Strasse','STATE','') ne "on" and InternalDoIf('du_Rollo_Master','STATE','') eq "an" and (DOIF_time_once($hash->{timer}{3},$wday,"") and !$we or DOIF_time_once($hash->{timer}{4},$wday,"") and $we)
   Days:
   Devices:
     0           du_Rollo_Master EG_dr_TS_Terrasse du_Rollo_Luminosity_ru
     1           OG_elt_RO_Strasse du_Rollo_Master
     all         du_Rollo_Master EG_dr_TS_Terrasse du_Rollo_Luminosity_ru OG_elt_RO_Strasse
   Do:
     0          set OG_elt_RO_Strasse off
     1          set OG_elt_RO_Strasse on
   Helper:
     last_timer 5
     sleeptimer -1
   Internals:
     0           du_Rollo_Master:STATE du_Rollo_Luminosity_ru:STATE
     1           OG_elt_RO_Strasse:STATE du_Rollo_Master:STATE
     all         du_Rollo_Master:STATE du_Rollo_Luminosity_ru:STATE OG_elt_RO_Strasse:STATE
   Readings:
     0           EG_dr_TS_Terrasse:luminosity
     all         EG_dr_TS_Terrasse:luminosity
   Realtime:
     0          16:10:00
     1          21:30:00
     2          21:30:00
     3          06:40:00
     4          09:30:00
   State:
   Time:
     0          {ReadingsVal("du_Rollo_Zeit_ru_start", "state", "00:00:00")}
     1          {ReadingsVal("du_Rollo_Zeit_ru_ende", "state", "00:00:00")}
     2          {ReadingsVal("du_Rollo_Zeit_ru_ende", "state", "00:00:00")}
     3          {ReadingsVal("du_Rollo_Zeit_ho", "state", "00:00:00")}
     4          {ReadingsVal("du_Rollo_Zeit_ho_WE", "state", "00:00:00")}
   Timecond:
     0          0
     1          0
     2          0
     3          1
     4          1
   Timer:
     0          0
     1          0
     2          0
     3          0
     4          0
   Timerfunc:
   Timers:
     0           0  1  2
     1           3  4
   Trigger:
Attributes:
   room       LichtRollo

   

Aufgrund des Timers um 06:40 ist der Rollo hochgefahren worden.
Nur warum stehen im Log von FHEM zwei Schaltvorgänge?

Damian

Zitat von: maxritti am 07 Januar 2015, 11:41:34
Hallo,

mir ist etwas im FHEM Log aufgefallen.
In meinem FHEM existiert für jeden Rollo ein DOIF, welches aufgrund von Helligkeit, Fensterkontakten etc den Status des Rollos schaltet.

Nun ist mir aufgefallen, dass es u.U. zwei Schaltungen für einen Rollo gibt.

Hier mal einer der Kandidaten, welcher heute morgen auffällig geworden ist:

2015.01.07 06:40:00.030 3: CUL_HM set OG_elt_RO_Strasse on
2015.01.07 06:40:00.029 3: CUL_HM set OG_elt_RO_Strasse on


Zustande gekommen sind diese Schaltvorgänge mMn durch dieses DOIF.

   CFGFN
   DEF        ([du_Rollo_Master] eq "an" and (([EG_dr_TS_Terrasse:luminosity] < [du_Rollo_Luminosity_ru] and ([{ReadingsVal("du_Rollo_Zeit_ru_start", "state", "00:00:00")}-{ReadingsVal("du_Rollo_Zeit_ru_ende", "state", "00:00:00")}])) or [{ReadingsVal("du_Rollo_Zeit_ru_ende", "state", "00:00:00")}]))
  (set OG_elt_RO_Strasse off)
DOELSEIF ([OG_elt_RO_Strasse] ne "on" and [du_Rollo_Master] eq "an" and ([{ReadingsVal("du_Rollo_Zeit_ho", "state", "00:00:00")}] and !$we or [{ReadingsVal("du_Rollo_Zeit_ho_WE", "state", "00:00:00")}] and $we))
  (set OG_elt_RO_Strasse on)
   NAME       di_OG_elt_RO_Strasse
   NR         176
   NTFY_ORDER 50-di_OG_elt_RO_Strasse
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2015-01-07 06:40:00   cmd_event       timer_4
     2015-01-07 06:40:00   cmd_nr          2
     2015-01-07 11:39:36   e_EG_dr_TS_Terrasse_luminosity 146
     2015-01-07 06:40:20   e_OG_elt_RO_Strasse_STATE on
     2015-01-07 06:40:00   state           cmd_2
     2015-01-06 18:32:32   timer_1_c1      07.01.2015 16:10:00
     2015-01-06 21:30:00   timer_2_c1      07.01.2015 21:30:00
     2015-01-06 21:30:00   timer_3_c1      07.01.2015 21:30:00
     2015-01-07 06:40:00   timer_4_c2      08.01.2015 06:40:00
     2015-01-07 09:30:00   timer_5_c2      08.01.2015 09:30:00
   Condition:
     0          InternalDoIf('du_Rollo_Master','STATE','') eq "an" and ((ReadingValDoIf('EG_dr_TS_Terrasse','luminosity','') < InternalDoIf('du_Rollo_Luminosity_ru','STATE','') and (DOIF_time($hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,""))) or DOIF_time_once($hash->{timer}{2},$wday,""))
     1          InternalDoIf('OG_elt_RO_Strasse','STATE','') ne "on" and InternalDoIf('du_Rollo_Master','STATE','') eq "an" and (DOIF_time_once($hash->{timer}{3},$wday,"") and !$we or DOIF_time_once($hash->{timer}{4},$wday,"") and $we)
   Days:
   Devices:
     0           du_Rollo_Master EG_dr_TS_Terrasse du_Rollo_Luminosity_ru
     1           OG_elt_RO_Strasse du_Rollo_Master
     all         du_Rollo_Master EG_dr_TS_Terrasse du_Rollo_Luminosity_ru OG_elt_RO_Strasse
   Do:
     0          set OG_elt_RO_Strasse off
     1          set OG_elt_RO_Strasse on
   Helper:
     last_timer 5
     sleeptimer -1
   Internals:
     0           du_Rollo_Master:STATE du_Rollo_Luminosity_ru:STATE
     1           OG_elt_RO_Strasse:STATE du_Rollo_Master:STATE
     all         du_Rollo_Master:STATE du_Rollo_Luminosity_ru:STATE OG_elt_RO_Strasse:STATE
   Readings:
     0           EG_dr_TS_Terrasse:luminosity
     all         EG_dr_TS_Terrasse:luminosity
   Realtime:
     0          16:10:00
     1          21:30:00
     2          21:30:00
     3          06:40:00
     4          09:30:00
   State:
   Time:
     0          {ReadingsVal("du_Rollo_Zeit_ru_start", "state", "00:00:00")}
     1          {ReadingsVal("du_Rollo_Zeit_ru_ende", "state", "00:00:00")}
     2          {ReadingsVal("du_Rollo_Zeit_ru_ende", "state", "00:00:00")}
     3          {ReadingsVal("du_Rollo_Zeit_ho", "state", "00:00:00")}
     4          {ReadingsVal("du_Rollo_Zeit_ho_WE", "state", "00:00:00")}
   Timecond:
     0          0
     1          0
     2          0
     3          1
     4          1
   Timer:
     0          0
     1          0
     2          0
     3          0
     4          0
   Timerfunc:
   Timers:
     0           0  1  2
     1           3  4
   Trigger:
Attributes:
   room       LichtRollo

   

Aufgrund des Timers um 06:40 ist der Rollo hochgefahren worden.
Nur warum stehen im Log von FHEM zwei Schaltvorgänge?

Und du bist sicher, dass du nicht zwei mal einen DOIF definiert hast, der den gleichen Rollladen schaltet?

Da du kein do always definiert  hast, ist es unwahrscheinlich, dass es vom gleichen DOIF kommt, auch wenn sich das Modul durch eine Rekursion selbst triggern würde. Ich habe bei mir einige DOIF´s mit Zeitsteuerung laufen - da wiederholt sich nichts. Ansonsten würde ich versuchen dieses Verhalten einzukreisen. Passiert es z. B. immer beim gleichen Rollladen oder bei verschiedenen?

Gruß

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

maxritti

Ziemlich sicher. Wenn ich ein configdb list mache, kommt die ganze Konfiguration meines FHEMs. Okay bis auf Inhalten von myUtils.pm usw.
In der ganzen Config gibt es ein set OG_elt_RO_Strasse on nur ein einziges mal und zwar genau das in dem DOIF.

Eventuell ist es ja auch ein neues senden vom HMLAN, weil der OG_elt_RO_Strasse auf den ersten Befehl nicht geantwortet hat.
rssi Wert so um die -74.

Könnte man dem DOIF noch mehr Debugging Informationen mit beispielsweise verbose=5 entlocken?

Eigene Antwort:
Das kann ich ja einfach mal setzen und schauen was passiert.

Ich werde das aber mal beobachten und mich ggf noch mal melden.

Damian

Zitat von: maxritti am 07 Januar 2015, 16:56:13
Ziemlich sicher. Wenn ich ein configdb list mache, kommt die ganze Konfiguration meines FHEMs. Okay bis auf Inhalten von myUtils.pm usw.
In der ganzen Config gibt es ein set OG_elt_RO_Strasse on nur ein einziges mal und zwar genau das in dem DOIF.

Eventuell ist es ja auch ein neues senden vom HMLAN, weil der OG_elt_RO_Strasse auf den ersten Befehl nicht geantwortet hat.
rssi Wert so um die -74.

Könnte man dem DOIF noch mehr Debugging Informationen mit beispielsweise verbose=5 entlocken?

Eigene Antwort:
Das kann ich ja einfach mal setzen und schauen was passiert.

Ich werde das aber mal beobachten und mich ggf noch mal melden.

Auffällig ist auch die sehr kurze Zeitdifferenz von einer Millisekunde. Eine Wiederholung von DOIF müsste mehr brauchen.

Gruß

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

juppzupp

Ich glaub ich hab knöpfe auf den augen  8)

Es sollte doch jetzt 22 eingestellt sein, ist aber 20 ?

fhem> {TimeNow()}
2015-01-07 18:37:56


fhem> list wz_heizung_absenkung
Internals:
   CFGFN     
   DEF        ([16:00-18:30|8]) (set thr_wz desired 21) DOELSEIF ([18:30-23:00|8]) (set thr_wz desired 22) DOELSEIF ([09:00-11:30|7]) (set thr_wz desired 21) DOELSEIF ([11:30-23:00|7]) (set thr_wz desired 22) DOELSE (set thr_wz desired 20)
   NAME       wz_heizung_absenkung
   NR         66309
   NTFY_ORDER 50-wz_heizung_absenkung
   STATE      cmd_5
   TYPE       DOIF
   Readings:
     2015-01-07 18:30:00   cmd_event       timer_2
     2015-01-07 18:30:00   cmd_nr          5
     2015-01-07 18:30:00   state           cmd_5
     2015-01-07 16:00:00   timer_1_c1      08.01.2015 16:00:00|8
     2015-01-07 18:30:00   timer_2_c1      08.01.2015 18:30:00|8
     2015-01-07 18:30:00   timer_3_c2      08.01.2015 18:30:00|8
     2015-01-06 23:15:25   timer_4_c2      07.01.2015 23:00:00|8
     2015-01-07 09:00:00   timer_5_c3      08.01.2015 09:00:00|7
     2015-01-07 11:30:00   timer_6_c3      08.01.2015 11:30:00|7
     2015-01-07 11:30:00   timer_7_c4      08.01.2015 11:30:00|7
     2015-01-06 23:15:25   timer_8_c4      07.01.2015 23:00:00|7
   Condition:
     0          DOIF_time($hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"8")
     1          DOIF_time($hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"8")
     2          DOIF_time($hash->{realtime}{4},$hash->{realtime}{5},$wday,$hms,"7")
     3          DOIF_time($hash->{realtime}{6},$hash->{realtime}{7},$wday,$hms,"7")
   Days:
     0          8
     1          8
     2          8
     3          8
     4          7
     5          7
     6          7
     7          7
   Devices:
   Do:
     0          set thr_wz desired 21
     1          set thr_wz desired 22
     2          set thr_wz desired 21
     3          set thr_wz desired 22
     4          set thr_wz desired 20
   Helper:
     last_timer 8
     sleeptimer -1
   Internals:
   Readings:
   Realtime:
     0          16:00:00
     1          18:30:00
     2          18:30:00
     3          23:00:00
     4          09:00:00
     5          11:30:00
     6          11:30:00
     7          23:00:00
   State:
   Time:
     0          16:00:00
     1          18:30:00
     2          18:30:00
     3          23:00:00
     4          09:00:00
     5          11:30:00
     6          11:30:00
     7          23:00:00
   Timecond:
     0          0
     1          0
     2          1
     3          1
     4          2
     5          2
     6          3
     7          3
   Timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
     7          0
   Timerfunc:
   Timers:
     0           0  1
     1           2  3
     2           4  5
     3           6  7

Damian

Zitat von: juppzupp am 07 Januar 2015, 18:40:30
Ich glaub ich hab knöpfe auf den augen  8)

Es sollte doch jetzt 22 eingestellt sein, ist aber 20 ?

fhem> {TimeNow()}
2015-01-07 18:37:56


fhem> list wz_heizung_absenkung
Internals:
   CFGFN     
   DEF        ([16:00-18:30|8]) (set thr_wz desired 21) DOELSEIF ([18:30-23:00|8]) (set thr_wz desired 22) DOELSEIF ([09:00-11:30|7]) (set thr_wz desired 21) DOELSEIF ([11:30-23:00|7]) (set thr_wz desired 22) DOELSE (set thr_wz desired 20)
   NAME       wz_heizung_absenkung
   NR         66309
   NTFY_ORDER 50-wz_heizung_absenkung
   STATE      cmd_5
   TYPE       DOIF
   Readings:
     2015-01-07 18:30:00   cmd_event       timer_2
     2015-01-07 18:30:00   cmd_nr          5
     2015-01-07 18:30:00   state           cmd_5
     2015-01-07 16:00:00   timer_1_c1      08.01.2015 16:00:00|8
     2015-01-07 18:30:00   timer_2_c1      08.01.2015 18:30:00|8
     2015-01-07 18:30:00   timer_3_c2      08.01.2015 18:30:00|8
     2015-01-06 23:15:25   timer_4_c2      07.01.2015 23:00:00|8
     2015-01-07 09:00:00   timer_5_c3      08.01.2015 09:00:00|7
     2015-01-07 11:30:00   timer_6_c3      08.01.2015 11:30:00|7
     2015-01-07 11:30:00   timer_7_c4      08.01.2015 11:30:00|7
     2015-01-06 23:15:25   timer_8_c4      07.01.2015 23:00:00|7
   Condition:
     0          DOIF_time($hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"8")
     1          DOIF_time($hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"8")
     2          DOIF_time($hash->{realtime}{4},$hash->{realtime}{5},$wday,$hms,"7")
     3          DOIF_time($hash->{realtime}{6},$hash->{realtime}{7},$wday,$hms,"7")
   Days:
     0          8
     1          8
     2          8
     3          8
     4          7
     5          7
     6          7
     7          7
   Devices:
   Do:
     0          set thr_wz desired 21
     1          set thr_wz desired 22
     2          set thr_wz desired 21
     3          set thr_wz desired 22
     4          set thr_wz desired 20
   Helper:
     last_timer 8
     sleeptimer -1
   Internals:
   Readings:
   Realtime:
     0          16:00:00
     1          18:30:00
     2          18:30:00
     3          23:00:00
     4          09:00:00
     5          11:30:00
     6          11:30:00
     7          23:00:00
   State:
   Time:
     0          16:00:00
     1          18:30:00
     2          18:30:00
     3          23:00:00
     4          09:00:00
     5          11:30:00
     6          11:30:00
     7          23:00:00
   Timecond:
     0          0
     1          0
     2          1
     3          1
     4          2
     5          2
     6          3
     7          3
   Timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
     7          0
   Timerfunc:
   Timers:
     0           0  1
     1           2  3
     2           4  5
     3           6  7


Ein DOELSE-Fall bei mehreren Bedingungen mit Zeitintervallen macht wenig Sinn, denn es wird jedesmal am Ende des Zeitintervalls getriggert, z. B. zuletzt um 18:30, das Zeitintervall ist dann nicht wahr und es wird immer der DOELSE ausgeführt.

Gruß

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

juppzupp

ok, danke.
in der commandref hatte ich gelesen, das immer der erste fall der matched genommen wird, und da doelse ganz hinten steht.......
falsch interpretiert.



Michi240281

Habe immer noch Probleme! Irgendwas scheint mit dem Modul nicht zu stimmen! Habe meinen DOELSEIF Fall mal auf ein Minimum reduziert, dennoch geht der state nur auf initialized!

([Temperatur_Garage:humidity] > 60 and [Garagentor:state] eq "closed" and [Temperatur_Garage:temperature] > 3 and [Temperatur_Garage:temperature] < 9 and ([Temperatur_Garage:temperature]-[MyWeather:temperature] < 3) and [12:00-20:00] and [Abwesend:state] eq "nein" and ([MyWeather:humidity_10] < [Temperatur_Garage:humidity])) (set Garage_Schalten Lueften, define Garage_wieder_Schliessen_2 at +00:25:00 set Garage_Schalten Schliessen) DOELSEIF ([Temperatur_Garage:temperature] > 15) (set Garage_Schalten Lueften, define Garage_wieder_Schliessen_3 at +00:25:00 set Garage_Schalten Schliessen)

Jmd ne Idee?
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9