Anwesenheit / Status zeitgesteuert -Hilfe?

Begonnen von HB86, 02 November 2016, 11:18:39

Vorheriges Thema - Nächstes Thema

HB86

Hallo,
ich nutze ein DOIF um mein Homestatus zu definieren, davon ist zum Beispiel meine Heizungssteurung abhängig. Das ganze funktioniert soweit ganz gut.

Bis auf den Nacht-Modus, dieser wird früh um 7:00 leider nicht beendet und ich weiß nicht warum.

Wäre sehr dankbar für eure Hilfe!

([Anwesenheit_structure] eq "Urlaub") (set Anwesenheit Urlaub) DOELSEIF ([Anwesenheit_structure] eq "absent") (set Anwesenheit Abwesend) DOELSEIF ([22:00-07:00] and [Alles] eq "off" and [Anwesenheit_structure] eq "present") (set Anwesenheit Nacht) DOELSEIF ([Anwesenheit_structure] eq "present") (set Anwesenheit Zuhause)


Damian

Zitat von: HB86 am 02 November 2016, 11:18:39
Hallo,
ich nutze ein DOIF um mein Homestatus zu definieren, davon ist zum Beispiel meine Heizungssteurung abhängig. Das ganze funktioniert soweit ganz gut.

Bis auf den Nacht-Modus, dieser wird früh um 7:00 leider nicht beendet und ich weiß nicht warum.

Wäre sehr dankbar für eure Hilfe!

([Anwesenheit_structure] eq "Urlaub") (set Anwesenheit Urlaub) DOELSEIF ([Anwesenheit_structure] eq "absent") (set Anwesenheit Abwesend) DOELSEIF ([22:00-07:00] and [Alles] eq "off" and [Anwesenheit_structure] eq "present") (set Anwesenheit Nacht) DOELSEIF ([Anwesenheit_structure] eq "present") (set Anwesenheit Zuhause)

Um 07:00 Uhr wird die vorletzte Bedinung getriggert, sie ist nicht wahr und weil es keinen DOELSE-Fall gibt, passiert auch nichts.

Gruß

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

HB86

das heißt wenn ich aus dem letzten DOELSEIF einfach ein DOELSE mache, sollte es funktionieren, oder?

HB86


Damian

Zitat von: HB86 am 02 November 2016, 11:54:59
das heißt wenn ich aus dem letzten DOELSEIF einfach ein DOELSE mache, sollte es funktionieren, oder?

Kommt darauf an. Der DOELSE-Fall wird allerdings dann immer ausgeführt, wenn irgendeine Bedingung getriggert wird und nicht wahr ist.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

HB86

ja das hab ich auch gerade gemerkt, das ist aber nicht sinn und zweck

aber was müsste ich denn dann als DOELSE definieren?

Damian

Zitat von: HB86 am 02 November 2016, 12:45:25
ja das hab ich auch gerade gemerkt, das ist aber nicht sinn und zweck

aber was müsste ich denn dann als DOELSE definieren?

Du musst dir dann eine DOELSEIF-Bedingung überlegen, die deinem gewünschten Zustand entspricht.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

HB86

Ich versteh das nicht ganz, die vorletzte Bedingung ist 07:00 nicht (mehr) wahr, aber dafür ist ja die letzte Bedingung wahr. Warum wird diese dann nicht ausgelöst?

Damian

Zitat von: HB86 am 02 November 2016, 12:57:47
Ich versteh das nicht ganz, die vorletzte Bedingung ist 07:00 nicht (mehr) wahr, aber dafür ist ja die letzte Bedingung wahr. Warum wird diese dann nicht ausgelöst?

Zitat aus der Commandref

ZitatDie Angaben werden immer von links nach rechts abgearbeitet. Zu beachten ist, dass nur die Bedingungen überprüft werden, die zum ausgelösten Event das dazughörige Device bzw. die dazugehörige Triggerzeit beinhalten. Kommt ein Device in mehreren Bedingungen vor, so wird immer nur ein Kommando ausgeführt, und zwar das erste, für das die dazugehörige Bedingung in der abgearbeiteten Reihenfolge wahr ist.

Es gibt in der Beta-Version des DOIF-Modul das Attribit checkall, kannst du evtl. damit probieren, ob dann  allerdings alles so funktioniert, wie du es wünschst - weiß ich nicht.

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

HB86