DOIF mit indirekten Zeitangaben

Begonnen von Damian, 25 Februar 2015, 19:19:38

Vorheriges Thema - Nächstes Thema

Damian

Zitat von: flurin am 28 Februar 2015, 15:15:38
Nach der Erweiterung von 98_DOIF.pm - wie oben beschrieben - funktioniert dieses Beispiel (aus dem DEF-Editor) problemlos:

([15:15]) ( { myLog("A"); myLog("B") } )

also mit einem Semikolon.

Gruss
flurin

ja, aber nicht in der Kommandozeile. Und weil bis heute die wenigsten wissen wie viel Semikolons man wo setzen muss, belassen wir es einfach beim Komma - da muss man immer nur eins nehmen, egal ob in der Kommandozeile, cfg-Datei oder DEF-Editor ;)


Gruß

Damian

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

flurin

Zitat von: Damian am 28 Februar 2015, 16:49:04
ja, aber nicht in der Kommandozeile. Und weil bis heute die wenigsten wissen wie viel Semikolons man wo setzen muss, belassen wir es einfach beim Komma - da muss man immer nur eins nehmen, egal ob in der Kommandozeile, cfg-Datei oder DEF-Editor ;)


Gruß

Damian

OK, Danke für Deine Antwort. Wie gesagt, ich kann damit leben.
Grundsätzlich sobald mehr als ein statement in einem DOIF-Perl-Block vorkommt, werde ich es auslagern (-> 99_myUtils.pm), dann bin ich wieder happy.  ;)

Gruss
flurin

Damian

#32
Zitat von: flurin am 28 Februar 2015, 17:26:09
OK, Danke für Deine Antwort. Wie gesagt, ich kann damit leben.
Grundsätzlich sobald mehr als ein statement in einem DOIF-Perl-Block vorkommt, werde ich es auslagern (-> 99_myUtils.pm), dann bin ich wieder happy.  ;)

Gruss
flurin

ja, wenn man in perl programmiert ist das die beste Methode.

Abgesehen davon würde deine Änderung jegliche Hierarchie zunichte machen. Ein DOIF()({fhem(" define test at 10:00 set bla1 on;set bla2 off")}) ob mit einem, zwei oder drei usw. Semikolon dürfe hier nicht mehr funktionieren (auch im DEF-Editor). Ist aber jetzt philosophisch, da Kommandozeile eh nicht funktioniert.

Die Sache ist wesentlich komplizierter als es den Anschein hat. Ich habe mir bereits bei der Programmierung des IF-Befehls die Zähne an den Semikolons ausgebissen :)

Gruß

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

flurin

Zitat von: Damian am 28 Februar 2015, 17:35:30
ja, wenn man in perl programmiert ist das die beste Methode.

Abgesehen davon würde deine Änderung jegliche Hierarchie zunichte machen. Ein DOIF()({fhem(" define test at 10:00 set bla1 on;set bla2 off")}) ob mit einem, zwei oder drei usw. Semikolon dürfe hier nicht mehr funktionieren (auch im DEF-Editor). Ist aber jetzt philosophisch, da Kommandozeile eh nicht funktioniert.

Die Sache ist wesentlich komplizierter als es den Anschein hat. Ich habe mir bereits bei der Programmierung des IF-Befehls die Zähne an den Semikolons ausgebissen :)

Gruß

Damian

Das kann ich nicht so stehen lassen  :)

DOIF()({fhem(" define test at 10:00 set bla1 on;set bla2 off")})

Das ist doch kein perl-Code sondern ein fhem-Code und hier gehört auch ein Komma her.
Mein Vorschlag bezog sich nur auf ein perl-Code in einem perl-Block {statement; statement;..}

Gruss
flurin

Damian

Zitat von: flurin am 28 Februar 2015, 17:46:28
Das kann ich nicht so stehen lassen  :)

DOIF()({fhem(" define test at 10:00 set bla1 on;set bla2 off")})

Das ist doch kein perl-Code sondern ein fhem-Code und hier gehört auch ein Komma her.
Mein Vorschlag bezog sich nur auf ein perl-Code in einem perl-Block {statement; statement;..}

Gruss
flurin

natürlich ist das perl-code.

{fhem ... ist immer perl-code, da fhem eine perl-Funktion ist und kein FHEM-Befehl. Alles was in Anführungszeichen steht ist ein Übergabeparameter der perl-Funktion fhem (hier zufällig FHEM-Code)

Gruß

Damian




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

flurin

Zitat von: Damian am 28 Februar 2015, 17:53:41
natürlich ist das perl-code.

{fhem ... ist immer perl-code, da fhem eine perl-Funktion ist und kein FHEM-Befehl. Alles was in Anführungszeichen steht ist ein Übergabeparameter der perl-Funktion fhem (hier zufällig FHEM-Code)

Gruß

Damian

Ja, ich meinte der Übergabeparameter ist kein perl-code. Hier hast Du auch das Komma mit einem Semikolon ersetzt, was ich nie vorgeschlagen habe.

Ich muss leider weg, wünsche Dir einen schönen Abend.

Gruss
flurin

Damian

#36
Zitat von: Damian am 28 Februar 2015, 17:53:41
natürlich ist das perl-code.

{fhem ... ist immer perl-code, da fhem eine perl-Funktion ist und kein FHEM-Befehl. Alles was in Anführungszeichen steht ist ein Übergabeparameter der perl-Funktion fhem (hier zufällig FHEM-Code)

Gruß

Damian

Nachtrag: Deine Änderung würde genau in diesem Fall (aus Sicht von DOIF: Perl-Block) die Semikolons verändern. Komma würde hier gar nicht funktionieren, da DOIF das Perl-Kommando weitergibt und sich gar nicht mehr drum kümmert.

Gruß

Damian

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

moonsorrox

#37
ich möchte ja den Thread hier nicht zu müllen, aber bei mir gibt es echt Probleme...!
Habe heute Mittag extra darauf geachtet, das alle meine DOIFs "initialized" sind.

Jetzt komme ich nachhause und selbst an den Rollladen DOIF wo ich nichts geändert habe ging wohl nichts. Nun weiß ich erst mal gar nicht auf was ich achten muss und was ich zuerst schauen soll.

Es gingen die Rollläden nicht runter, das Licht am Weg nicht an und im WZ die TV Beleuchtung nicht an. Dann kommt etwas später noch die Schlafzimmer Decken Uhr wird wohl auch nicht gehen, mal schauen  :-\

Hier mal das List von der Wegbeleuchtung, evtl. kann man was sehen:
Internals:
   CFGFN      ./FHEM/Automation.cfg
   DEF        ( [ZeitsteuerungWeg] eq "Dämmerung" and ([{sunset("CIVIL",1200,"17:00","22:20")}|12345] or [{sunset("CIVIL",800,"17:00","22:20")}|06]))
    (set WegLampe_Sw_01 on)
DOELSEIF ( [ZeitsteuerungWeg] eq "Dämmerung" and ([{sunset("CIVIL",9000,"19:00","22:20")}|0123456]))
    (set WegLampe_Sw_01 off,set WegLampe_Sw_02 on)
DOELSEIF ([ZeitsteuerungWeg] eq "Dämmerung" and ([00:15|12345] or [01:15|06]))
    (set WegLampe_Sw_02 off)
DOELSEIF([ZeitsteuerungWeg] =~ "Aus|Dämmerung")(attr ZufallsTimerWeglicht disable 1)
DOELSEIF([ZeitsteuerungWeg] eq "Zufall")(attr ZufallsTimerWeglicht disable 0)




   NAME       di_WegBeleuchtung
   NR         295
   NTFY_ORDER 50-di_WegBeleuchtung
   STATE      initialized
   TYPE       DOIF
   Readings:
     2015-02-28 14:38:55   state           initialized
     2015-02-28 16:02:50   timer_1_c1      28.02.2015 18:51:29|12345
     2015-02-28 16:02:50   timer_2_c1      28.02.2015 18:44:49|06
     2015-02-28 16:02:50   timer_3_c2      28.02.2015 21:01:29|0123456
     2015-02-28 16:02:50   timer_4_c3      01.03.2015 00:15:00|12345
     2015-02-28 16:02:50   timer_5_c3      01.03.2015 01:15:00|06
   Condition:
     0           InternalDoIf('ZeitsteuerungWeg','STATE','') eq "Dämmerung" and (DOIF_time_once($hash->{timer}{0},$wday,"12345") or DOIF_time_once($hash->{timer}{1},$wday,"06"))
     1           InternalDoIf('ZeitsteuerungWeg','STATE','') eq "Dämmerung" and (DOIF_time_once($hash->{timer}{2},$wday,"0123456"))
     2          InternalDoIf('ZeitsteuerungWeg','STATE','') eq "Dämmerung" and (DOIF_time_once($hash->{timer}{3},$wday,"12345") or DOIF_time_once($hash->{timer}{4},$wday,"06"))
     3          InternalDoIf('ZeitsteuerungWeg','STATE','') =~ "Aus|Dämmerung"
     4          InternalDoIf('ZeitsteuerungWeg','STATE','') eq "Zufall"
   Days:
     0          12345
     1          06
     2          0123456
     3          12345
     4          06
   Devices:
     0           ZeitsteuerungWeg
     1           ZeitsteuerungWeg
     2           ZeitsteuerungWeg
     3           ZeitsteuerungWeg
     4           ZeitsteuerungWeg
     all         ZeitsteuerungWeg
   Do:
     0          set WegLampe_Sw_01 on
     1          set WegLampe_Sw_01 off,set WegLampe_Sw_02 on
     2          set WegLampe_Sw_02 off
     3          attr ZufallsTimerWeglicht disable 1
     4          attr ZufallsTimerWeglicht disable 0
   Helper:
     last_timer 5
     sleeptimer -1
   Internals:
     0           ZeitsteuerungWeg:STATE
     1           ZeitsteuerungWeg:STATE
     2           ZeitsteuerungWeg:STATE
     3           ZeitsteuerungWeg:STATE
     4           ZeitsteuerungWeg:STATE
     all         ZeitsteuerungWeg:STATE
   Itimer:
   State:
   Time:
     0          {sunset("CIVIL",1200,"17:00","22:20")}
     1          {sunset("CIVIL",800,"17:00","22:20")}
     2          {sunset("CIVIL",9000,"19:00","22:20")}
     3          00:15:00
     4          01:15:00
   Timecond:
     0          0
     1          0
     2          1
     3          2
     4          2
   Timer:
     0          0
     1          0
     2          0
     3          0
     4          0
   Timerfunc:
   Timers:
     0           0  1
     1           2
     2           3  4
Attributes:


und hier die Rollläden:
Internals:
   CFGFN      ./FHEM/Automation.cfg
   DEF        ([RolloWZmodus] eq "FHEM"
and ([{ReadingsVal("du_RolloZeit_hoch", "state", "08:15:00")}|12345]
or [{ReadingsVal("du_RolloZeit_hoch_WoE", "state", "08:45:00")}|06])) (set RollladenWZ on)
DOELSEIF ([RolloWZmodus] =~ "FHEM|Beschattung"
and [WZ_TerrasseTuer:state] eq "closed"
and ([{sunset("CIVIL",-600,"16:35","22:10")}|0123456])) (set RollladenWZ off)


   NAME       di_rollladenWZ_TK_LichtTerrasse
   NR         155
   NTFY_ORDER 50-di_rollladenWZ_TK_LichtTerrasse
   STATE      initialized
   TYPE       DOIF
   Readings:
     2015-02-28 16:07:06   e_RolloWZmodus_STATE FHEM
     2015-02-28 17:03:31   state           initialized
     2015-02-28 16:02:50   timer_1_c1      01.03.2015 08:15:00|12345
     2015-02-28 16:02:50   timer_2_c1      01.03.2015 08:40:00|06
     2015-02-28 16:02:50   timer_3_c2      28.02.2015 18:21:29|0123456
   Condition:
     0          InternalDoIf('RolloWZmodus','STATE','') eq "FHEM" and (DOIF_time_once($hash->{timer}{0},$wday,"12345") or DOIF_time_once($hash->{timer}{1},$wday,"06"))
     1          InternalDoIf('RolloWZmodus','STATE','') =~ "FHEM|Beschattung" and ReadingValDoIf('WZ_TerrasseTuer','state','') eq "closed" and (DOIF_time_once($hash->{timer}{2},$wday,"0123456"))
   Days:
     0          12345
     1          06
     2          0123456
   Devices:
     0           RolloWZmodus
     1           RolloWZmodus WZ_TerrasseTuer
     all         RolloWZmodus WZ_TerrasseTuer
   Do:
     0          set RollladenWZ on
     1          set RollladenWZ off
   Helper:
     last_timer 3
     sleeptimer -1
   Internals:
     0           RolloWZmodus:STATE
     1           RolloWZmodus:STATE
     all         RolloWZmodus:STATE
   Itimer:
   Readings:
     1           WZ_TerrasseTuer:state
     all         WZ_TerrasseTuer:state
   State:
   Time:
     0          {ReadingsVal("du_RolloZeit_hoch", "state", "08:15:00")}
     1          {ReadingsVal("du_RolloZeit_hoch_WoE", "state", "08:45:00")}
     2          {sunset("CIVIL",-600,"16:35","22:10")}
   Timecond:
     0          0
     1          0
     2          1
   Timer:
     0          0
     1          0
     2          0
   Timerfunc:
   Timers:
     0           0  1
     1           2
Attributes:
   disable    0
   group      Rollläden EG
   room       Automation
   sortby     22


ich habe gerade nochmal ins Log geschaut und finde diese Fehler, sagt mir jetzt nichts... weil ich nutze diese "begin" und "end" aus dem Beispiel noch nicht des Threads nicht
Zitat2015.02.28 18:09:17 1: PERL WARNING: Use of uninitialized value $begin in string ge at ./FHEM/98_DOIF.pm line 454.
2015.02.28 18:09:17 1: PERL WARNING: Use of uninitialized value $begin in string gt at ./FHEM/98_DOIF.pm line 449.
2015.02.28 18:09:17 1: PERL WARNING: Use of uninitialized value $end in string gt at ./FHEM/98_DOIF.pm line 449.
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

flurin

#38
Zitat von: Damian am 28 Februar 2015, 18:09:03
Nachtrag: Deine Änderung würde genau in diesem Fall (aus Sicht von DOIF: Perl-Block) die Semikolons verändern. Komma würde hier gar nicht funktionieren, da DOIF das Perl-Kommando weitergibt und sich gar nicht mehr drum kümmert.

Gruß

Damian

Hi Damian

Du hast Recht mit dem Semikolon. Ich habe es innerhalb von DOIF so noch nie angewendet, darum mit der Kommaregel verwechselt.

Eigentlich wäre folgende Erweiterung im Gegensatz zu meinem oberen Vorschlag noch besser:

$currentBlock =~ s/;/;;/g;

Das ist auch das, was der DEF-Editor beim Abspeichern macht. Aber vermutlich habe ich nicht alle Fälle berücksichtigt.
Schlussendlich lohnt es sich nicht, den Aufwand zu betreiben.

Gruss
flurin

Damian

#39
Zitat von: moonsorrox am 28 Februar 2015, 22:18:25
ich möchte ja den Thread hier nicht zu müllen, aber bei mir gibt es echt Probleme...!
Habe heute Mittag extra darauf geachtet, das alle meine DOIFs "initialized" sind.

Jetzt komme ich nachhause und selbst an den Rollladen DOIF wo ich nichts geändert habe ging wohl nichts. Nun weiß ich erst mal gar nicht auf was ich achten muss und was ich zuerst schauen soll.

Es gingen die Rollläden nicht runter, das Licht am Weg nicht an und im WZ die TV Beleuchtung nicht an. Dann kommt etwas später noch die Schlafzimmer Decken Uhr wird wohl auch nicht gehen, mal schauen  :-\

Hier mal das List von der Wegbeleuchtung, evtl. kann man was sehen:
Internals:
   CFGFN      ./FHEM/Automation.cfg
   DEF        ( [ZeitsteuerungWeg] eq "Dämmerung" and ([{sunset("CIVIL",1200,"17:00","22:20")}|12345] or [{sunset("CIVIL",800,"17:00","22:20")}|06]))
    (set WegLampe_Sw_01 on)
DOELSEIF ( [ZeitsteuerungWeg] eq "Dämmerung" and ([{sunset("CIVIL",9000,"19:00","22:20")}|0123456]))
    (set WegLampe_Sw_01 off,set WegLampe_Sw_02 on)
DOELSEIF ([ZeitsteuerungWeg] eq "Dämmerung" and ([00:15|12345] or [01:15|06]))
    (set WegLampe_Sw_02 off)
DOELSEIF([ZeitsteuerungWeg] =~ "Aus|Dämmerung")(attr ZufallsTimerWeglicht disable 1)
DOELSEIF([ZeitsteuerungWeg] eq "Zufall")(attr ZufallsTimerWeglicht disable 0)




   NAME       di_WegBeleuchtung
   NR         295
   NTFY_ORDER 50-di_WegBeleuchtung
   STATE      initialized
   TYPE       DOIF
   Readings:
     2015-02-28 14:38:55   state           initialized
     2015-02-28 16:02:50   timer_1_c1      28.02.2015 18:51:29|12345
     2015-02-28 16:02:50   timer_2_c1      28.02.2015 18:44:49|06
     2015-02-28 16:02:50   timer_3_c2      28.02.2015 21:01:29|0123456
     2015-02-28 16:02:50   timer_4_c3      01.03.2015 00:15:00|12345
     2015-02-28 16:02:50   timer_5_c3      01.03.2015 01:15:00|06
   Condition:
     0           InternalDoIf('ZeitsteuerungWeg','STATE','') eq "Dämmerung" and (DOIF_time_once($hash->{timer}{0},$wday,"12345") or DOIF_time_once($hash->{timer}{1},$wday,"06"))
     1           InternalDoIf('ZeitsteuerungWeg','STATE','') eq "Dämmerung" and (DOIF_time_once($hash->{timer}{2},$wday,"0123456"))
     2          InternalDoIf('ZeitsteuerungWeg','STATE','') eq "Dämmerung" and (DOIF_time_once($hash->{timer}{3},$wday,"12345") or DOIF_time_once($hash->{timer}{4},$wday,"06"))
     3          InternalDoIf('ZeitsteuerungWeg','STATE','') =~ "Aus|Dämmerung"
     4          InternalDoIf('ZeitsteuerungWeg','STATE','') eq "Zufall"
   Days:
     0          12345
     1          06
     2          0123456
     3          12345
     4          06
   Devices:
     0           ZeitsteuerungWeg
     1           ZeitsteuerungWeg
     2           ZeitsteuerungWeg
     3           ZeitsteuerungWeg
     4           ZeitsteuerungWeg
     all         ZeitsteuerungWeg
   Do:
     0          set WegLampe_Sw_01 on
     1          set WegLampe_Sw_01 off,set WegLampe_Sw_02 on
     2          set WegLampe_Sw_02 off
     3          attr ZufallsTimerWeglicht disable 1
     4          attr ZufallsTimerWeglicht disable 0
   Helper:
     last_timer 5
     sleeptimer -1
   Internals:
     0           ZeitsteuerungWeg:STATE
     1           ZeitsteuerungWeg:STATE
     2           ZeitsteuerungWeg:STATE
     3           ZeitsteuerungWeg:STATE
     4           ZeitsteuerungWeg:STATE
     all         ZeitsteuerungWeg:STATE
   Itimer:
   State:
   Time:
     0          {sunset("CIVIL",1200,"17:00","22:20")}
     1          {sunset("CIVIL",800,"17:00","22:20")}
     2          {sunset("CIVIL",9000,"19:00","22:20")}
     3          00:15:00
     4          01:15:00
   Timecond:
     0          0
     1          0
     2          1
     3          2
     4          2
   Timer:
     0          0
     1          0
     2          0
     3          0
     4          0
   Timerfunc:
   Timers:
     0           0  1
     1           2
     2           3  4
Attributes:


und hier die Rollläden:
Internals:
   CFGFN      ./FHEM/Automation.cfg
   DEF        ([RolloWZmodus] eq "FHEM"
and ([{ReadingsVal("du_RolloZeit_hoch", "state", "08:15:00")}|12345]
or [{ReadingsVal("du_RolloZeit_hoch_WoE", "state", "08:45:00")}|06])) (set RollladenWZ on)
DOELSEIF ([RolloWZmodus] =~ "FHEM|Beschattung"
and [WZ_TerrasseTuer:state] eq "closed"
and ([{sunset("CIVIL",-600,"16:35","22:10")}|0123456])) (set RollladenWZ off)


   NAME       di_rollladenWZ_TK_LichtTerrasse
   NR         155
   NTFY_ORDER 50-di_rollladenWZ_TK_LichtTerrasse
   STATE      initialized
   TYPE       DOIF
   Readings:
     2015-02-28 16:07:06   e_RolloWZmodus_STATE FHEM
     2015-02-28 17:03:31   state           initialized
     2015-02-28 16:02:50   timer_1_c1      01.03.2015 08:15:00|12345
     2015-02-28 16:02:50   timer_2_c1      01.03.2015 08:40:00|06
     2015-02-28 16:02:50   timer_3_c2      28.02.2015 18:21:29|0123456
   Condition:
     0          InternalDoIf('RolloWZmodus','STATE','') eq "FHEM" and (DOIF_time_once($hash->{timer}{0},$wday,"12345") or DOIF_time_once($hash->{timer}{1},$wday,"06"))
     1          InternalDoIf('RolloWZmodus','STATE','') =~ "FHEM|Beschattung" and ReadingValDoIf('WZ_TerrasseTuer','state','') eq "closed" and (DOIF_time_once($hash->{timer}{2},$wday,"0123456"))
   Days:
     0          12345
     1          06
     2          0123456
   Devices:
     0           RolloWZmodus
     1           RolloWZmodus WZ_TerrasseTuer
     all         RolloWZmodus WZ_TerrasseTuer
   Do:
     0          set RollladenWZ on
     1          set RollladenWZ off
   Helper:
     last_timer 3
     sleeptimer -1
   Internals:
     0           RolloWZmodus:STATE
     1           RolloWZmodus:STATE
     all         RolloWZmodus:STATE
   Itimer:
   Readings:
     1           WZ_TerrasseTuer:state
     all         WZ_TerrasseTuer:state
   State:
   Time:
     0          {ReadingsVal("du_RolloZeit_hoch", "state", "08:15:00")}
     1          {ReadingsVal("du_RolloZeit_hoch_WoE", "state", "08:45:00")}
     2          {sunset("CIVIL",-600,"16:35","22:10")}
   Timecond:
     0          0
     1          0
     2          1
   Timer:
     0          0
     1          0
     2          0
   Timerfunc:
   Timers:
     0           0  1
     1           2
Attributes:
   disable    0
   group      Rollläden EG
   room       Automation
   sortby     22


ich habe gerade nochmal ins Log geschaut und finde diese Fehler, sagt mir jetzt nichts... weil ich nutze diese "begin" und "end" aus dem Beispiel noch nicht des Threads nicht

Das sind leider keine Belege für ein Fehlverhalten, wenn du ein Modul um 16:02 definierst und alle Timer erst später zuschlagen sollen, dann kann man nichts dazu sagen. Du musst mir einen Fall zeigen, wo ein Timer zugeschlagen haben sollte und der Status nicht verändert wurde.

Die Warnings kommen von einem Modul, bei dem du indirekte Zeiten benutzt, bei denen der Status oder Reading nicht mit einer korrekten Zeit belegt sind, das werde ich noch abfangen.

Nachtrag: Von wann sind die Auszüge?  Welchen Zustand hatte zu diesem Zeitpunkt [ZeitsteuerungWeg]?

Gruß

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

Damian

Zitat von: flurin am 01 März 2015, 06:06:12
Aber vermutlich habe ich nicht alle Fälle berücksichtigt.

Vermutlich, da man nicht weiß, was die Leute alles definiert haben. Abgesehen davon würden bei ca. 5000 definierten DOIF-Module unzählige nicht mehr funktionieren, da die Änderung nicht abwärtskompatibel ist.

Gruß

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

moonsorrox

Zitat von: Damian am 01 März 2015, 10:50:07
Das sind leider keine Belege für ein Fehlverhalten, wenn du ein Modul um 16:02 definierst und alle Timer erst später zuschlagen sollen, dann kann man nichts dazu sagen. Du musst mir einen Fall zeigen, wo ein Timer zugeschlagen haben sollte und der Status nicht verändert wurde.

Nachtrag: Von wann sind die Auszüge?  Welchen Zustand hatte zu diesem Zeitpunkt [ZeitsteuerungWeg]?

@Damian
die Auszüge sind von ca. 22.15 Uhr, also direkt als ich den Beitrag geschrieben habe, meine  Decken Uhr die um 23 Uhr einschalten sollte hat dies auch nicht getan.

Die Zustände von z.B. ZeitsteuerungWeg war zu diesem Zeitpunkt auf Dämmerung und auch meine Decken Uhr Steuerung war auf ein.
Siehe Screenshots

Beide verändere ich momentan gar nicht, da ich zuhause bin, die Wegbeleuchtung arbeitet also nach Dämmerung und schaltet sich ein mit Sunset und geht zu einer festen Zeit aus.
Die Uhr z.B. ändere ich momentan auch nicht da ich keine Nachtschicht habe, die geht also Abends irgendwann an und morgens auch aus.

Die LED Innen Beleuchtung am TV hat gestern auch nicht ausgeschaltet, diese geht zu einer festen Zeit aus, oder wenn ich früher aus dem WZ gehe nach meinem Helligkeitssensor, wenn ich die zweite Lampe ausschalte.

Also im gesamten hat gestern nichts funktioniert...

Zur Information, ich habe das alte Modul wieder zurück kopiert und heute morgen funktionierten auch die Rollläden wieder und die Uhr hat sich ausgeschaltet.
Gegen Abend werde ich schauen was die Wegbeleuchtung macht, denke aber das sie wieder funktioniert...

Was brauchst du noch für Angaben, die ich evtl. auslesen könnte.?
Wie gesagt ich hatte am Nachmittag extra drauf geachtet das alle DOIFs initialisiert waren um sicher zu stellen das sie auch funktionieren... An den Dummys für den Modus stelle ich jetzt gerade extra nichts um, ist auch momentan nicht nötig.
Vielen Dank für dein Geduld, muss ich einfach mal so loswerden ;) :D
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Damian

Zitat von: moonsorrox am 01 März 2015, 12:52:22
@Damian
die Auszüge sind von ca. 22.15 Uhr, also direkt als ich den Beitrag geschrieben habe, meine  Decken Uhr die um 23 Uhr einschalten sollte hat dies auch nicht getan.

Die Zustände von z.B. ZeitsteuerungWeg war zu diesem Zeitpunkt auf Dämmerung und auch meine Decken Uhr Steuerung war auf ein.
Siehe Screenshots

Beide verändere ich momentan gar nicht, da ich zuhause bin, die Wegbeleuchtung arbeitet also nach Dämmerung und schaltet sich ein mit Sunset und geht zu einer festen Zeit aus.
Die Uhr z.B. ändere ich momentan auch nicht da ich keine Nachtschicht habe, die geht also Abends irgendwann an und morgens auch aus.

Die LED Innen Beleuchtung am TV hat gestern auch nicht ausgeschaltet, diese geht zu einer festen Zeit aus, oder wenn ich früher aus dem WZ gehe nach meinem Helligkeitssensor, wenn ich die zweite Lampe ausschalte.

Also im gesamten hat gestern nichts funktioniert...

Zur Information, ich habe das alte Modul wieder zurück kopiert und heute morgen funktionierten auch die Rollläden wieder und die Uhr hat sich ausgeschaltet.
Gegen Abend werde ich schauen was die Wegbeleuchtung macht, denke aber das sie wieder funktioniert...

Was brauchst du noch für Angaben, die ich evtl. auslesen könnte.?
Wie gesagt ich hatte am Nachmittag extra drauf geachtet das alle DOIFs initialisiert waren um sicher zu stellen das sie auch funktionieren... An den Dummys für den Modus stelle ich jetzt gerade extra nichts um, ist auch momentan nicht nötig.
Vielen Dank für dein Geduld, muss ich einfach mal so loswerden ;) :D
OK. Das sieht so aus als wenn die Timer hier gar nicht zugeschlagen hätten. Du brauchst nicht stundenlang auf etwas zu warten:

teste einfach mal:

define di_test DOIF ([13:15]) (set bla on)

Die Zeit würde ich paar Minuten in die Zukunft setzen, die Definition anschauen und nach der Zeit nochmal schauen was passiert.


Gruß

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

moonsorrox

Zitat von: Damian am 01 März 2015, 13:10:43
OK. Das sieht so aus als wenn die Timer hier gar nicht zugeschlagen hätten. Du brauchst nicht stundenlang auf etwas zu warten:

teste einfach mal:

define di_test DOIF ([13:15]) (set bla on)

Die Zeit würde ich paar Minuten in die Zukunft setzen, die Definition anschauen und nach der Zeit nochmal schauen was passiert.

das funktionierte jetzt grad... aber ich habe ja auch noch das "alte" 98_DOIF drin, nicht das aus dem Beitrag
Habe drauf geachtet das er initialisiert hat und das sollte reichen, also:
Zitatstate initialized 2015-03-01 13:26:07
timer_1_c1 01.03.2015 13:30:00 2015-03-01 13:26:07

ja ich habe immer solche ein ähnliches Test DOIF zur Verfügung (nur um eine Zeit zu testen und auch speziell ein Gerät) und das funktioniert jetzt auch wieder, ich nutze dazu einen Zwischenstecker der hier direkt neben mir in der Steckdose steckt  ;) nur das hilft jetzt ja nicht weiter und schon gar nicht für die die gestern nichts gemacht haben.

Das nur so gar nichts im Log steht, aber auch irgendwie klar wenn nichts ging steht auch nichts drin :-\
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Damian

Zitat von: moonsorrox am 01 März 2015, 13:28:58
das funktionierte jetzt grad... aber ich habe ja auch noch das "alte" 98_DOIF drin, nicht das aus dem Beitrag
Habe drauf geachtet das er initialisiert hat und das sollte reichen, also:
ja ich habe immer solche ein ähnliches Test DOIF zur Verfügung (nur um eine Zeit zu testen und auch speziell ein Gerät) und das funktioniert jetzt auch wieder, ich nutze dazu einen Zwischenstecker der hier direkt neben mir in der Steckdose steckt  ;) nur das hilft jetzt ja nicht weiter und schon gar nicht für die die gestern nichts gemacht haben.

Das nur so gar nichts im Log steht, aber auch irgendwie klar wenn nichts ging steht auch nichts drin :-\

Ich denke, dass wir über die neue Modul reden und nicht über das alte. Dass beim alten auf einmal etwas nicht funktioniert, dürfte recht unwahrscheinlich sein.

Was mir bei deinen list-Ausgaben auffiel war, dass keine Realtime-Einträge vorhanden waren. Zu jedem Time-Eintrag muss es einen Realtime-Eintrag existieren, wie hier:

Realtime:
     0          06:25:00
     1          08:00:00
     2          15:00:00
     3          22:00:00
     4          06:25:00
     5          08:30:00
     6          08:30:00
     7          23:30:00
   State:
   Time:
     0          06:25:00
     1          08:00:00
     2          15:00:00
     3          22:00:00
     4          06:25:00
     5          08:30:00
     6          08:30:00
     7          23:30:00
   Timecond:


Um etwas reproduzieren zu können, darf man immer nur eine Sache gleichzeitig ändern und nicht mehrere.

Du kannst folgendes noch mal testen:

save config, shutdown, das letzte Modul aus Post 6 runterladen, ins FHEM-Verzeichnis kopieren, System hochfahren, beim test-DOIF Modul mit list schauen, ob Realtime gesetzt wurde, dann sollte alles funktionieren, wie bisher.

Gruß

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