Hauptmenü

neues Modul DOIF

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

Vorheriges Thema - Nächstes Thema

Spartacus

Hallo,
ok! Dann kann man meine Anwendung offenbar nicht mit einem DOIF lösen!
Ich dachte, es würden immer alle "DOIFELSE" -Fälle ausgewertet, wenn eine Bedingungen nicht zutrifft!

Dann versuche ich es mal mit dem klassisches "if" !
Danke,
Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Damian

Zitat von: Spartacus am 21 Februar 2015, 20:24:34
ok! Dann kann man meine Anwendung offenbar nicht mit einem DOIF lösen!

Kannst du schon, du musst dir nur überlegen in den anderen Fällen welchen Zustand [state.NRW.FerienClone.dum] haben soll z. B.

define di.01.OG.kz.SON.ZP_S1 DOIF ([state.NRW.FerienClone.dum] eq "1") \
(set Lampe off)\
DOELSEIF\
([OG.kz.AL.Wecker.dum] eq "ein" and (state.NRW.FerienClone.dum] ne "1")\
(set Lampe on)\
DOELSEIF\
([OG.kz.AL.Wecker.dum] eq "aus" and [state.NRW.FerienClone.dum] ne "1" )\
(set Lampe off)


Gruß

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

der-Lolo

das erschreckt mich jetzt auch ein bisschen... bedeutet das nun wirklich das wenn ein trigger der nur in bedingung 1 sitzt triggert und diese dann nicht mehr zutrifft das dann nicht in den weiteren DOELSEIFs geschaut wird welches wahr ist?

Ich dachte bis jetzt das es so läuft und setze z.b. DOELSE gezielt überwachend (logeintrag) ein.

Damian

Zitat von: der-Lolo am 21 Februar 2015, 20:30:13
das erschreckt mich jetzt auch ein bisschen... bedeutet das nun wirklich das wenn ein trigger der nur in bedingung 1 sitzt triggert und diese dann nicht mehr zutrifft das dann nicht in den weiteren DOELSEIFs geschaut wird welches wahr ist?

Ich dachte bis jetzt das es so läuft und setze z.b. DOELSE gezielt überwachend (logeintrag) ein.

DOELSE wird im Gegensatz zu DOELSIF immer ausgeführt, wenn irgendeine andere Bedingung nicht erfüllt wird. Ansonsten steht in der Commandref:

ZitatDie Angaben werden immer von links nach rechts abgearbeitet. Es wird immer nur ein Kommando ausgeführt, und zwar das erste, für das die dazugehörige Bedingung in der abgearbeiteten Reihenfolge wahr ist. Hinzu kommt, dass nur die Bedingungen überprüft werden, die zum ausgelösten Event auch das Device beinhalten.

Gruß

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

der-Lolo

Ok, das erklärt mir jetzt warum ich immer wiedermal ärger mit meinem HarmonyDOIF habe...
Danke, ich werde es entsprechend umbauen.

Damian

Zitat von: der-Lolo am 21 Februar 2015, 20:43:12
Ok, das erklärt mir jetzt warum ich immer wiedermal ärger mit meinem HarmonyDOIF habe...
Danke, ich werde es entsprechend umbauen.

Das war immer schon so, das andere Vorgehen (immer alle Bedingungen auszuwerten) hat sich bei mir bereits in der Entwicklungszeit, bevor ich das Modul veröffentlicht hatte, nicht bewährt.

Gruß

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

Spartacus

Hallo,
Danke für die klärenden Worte!

Ich lese die Commandref eigentlich immer. Aber für einen Nicht-Programmierer ist Logik nicht immer logisch! Ich denke oft, "jetzt haste es gerafft" und dann kommt die Ernüchterung!  Ich gebe nicht auf!

Danke an alle,
Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Damian

Zitat von: Spartacus am 21 Februar 2015, 20:56:19
Hallo,
Danke für die klärenden Worte!

Ich lese die Commandref eigentlich immer. Aber für einen Nicht-Programmierer ist Logik nicht immer logisch! Ich denke oft, "jetzt haste es gerafft" und dann kommt die Ernüchterung!  Ich gebe nicht auf!

Danke an alle,
Christian

Da kann ich dich beruhigen, selbst Programmierer müssen etwas mehr denken, denn bei DOIF kommt im Gegensatz zu einem einfachen if-elsif.. Befehl eine weitere Dimension hinzu, nämlich das "Trigger-Event".

Gruß

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

flurin

#1448
Hallo Damian

Es fällt auf, dass das Schreiben von Postings in diesem Thread immer langsamer wird. Die Datenbank scheint überfordert zu sein.
Ev. ist es sinnvoll, ein neues Thread zu starten und das Bestehende zu schliessen.

Gruss
flurin

Damian

Zitat von: flurin am 22 Februar 2015, 16:29:09
Hallo Damian

Es fällt auf, dass das Schreiben von Postings in diesem Thread immer langsamer wird. Die Datenbank scheint überfordert zu sein.
Ev. ist es sinnvoll, ein neues Thread zu starten und das Bestehende zu schliessen.

Gruss
flurin

Dann werde ich den Thread hier in den nächsten Tagen schließen. Dass es dieses Modul gibt, dürfte inzwischen vielen bekannt sein.

Gruß

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