DOIF führt nur einmal den Befehl aus

Begonnen von goerdi, 29 Januar 2016, 13:58:45

Vorheriges Thema - Nächstes Thema

Ellert

Zitat([?05:25-23:30] ? 13.0 : 7.7)
Ich finde, das ist eine interessante Idee.

Damian

Zitat von: Ellert am 02 Februar 2016, 10:17:03
Ich finde, das ist eine interessante Idee.
ja, es ergeben sich immer wieder neue Möglichkeiten, die ich selbst noch nicht bedacht habe :)

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

goerdi

Hi !

Ich werd dein Anpassungen mal reinmachen... war halt als blutiger Anfänger lt. Commandref zusammengenagelt :)
und ob das Ganze jetzt genau um 5:25 getriggert wird oder erst um 5:27:30 ist mir eigentlich egal.... es sollte halt um den Dreh passieren...
Es ist ja nicht zwingend die Uhrzeit, es kann ja je nach Temperatur Tagsüber auch ausschalten ... aber das werd ich sehn...
Ja der Aussensensor sendet regelmäßig... wird auch ein Plot dazu erstellt...

Gruss Gerd

turo

#18
Ich mag den " ? :  " Operator! Etwas ungewohnt am Anfang, aber er erlaubt schön kurze Konstrukte, die auch übersichtlich sind (wenn man es nicht übertreibt).

Gruss,
turo
3xRaspberry PI, Homematic, SELVE Rollos, 1-wire, Logitech Harmony, Alexa, Fussbodenheizung (ESP8266), Netatmo

goerdi

Hi !

So einfach ist das ja nicht ...... :)
ich habe 2 Verschiedene Zeitrahmen und in jedem 2 Kommandos.... (auto und manuell)
so wie du das geschrieben hast habe ich fuer jedes Kommando nur einen Zeitrahmen...

Gruss Gerd

l2r

@turo: den " ? :  " Operator kannte ich bisher noch gar nicht und hab jetzt auf Anhieb nix dazu gefunden... Gibt's dafür ne Doku oder sowas?
Wissen ist Macht.
Ich weiß nix.
Macht nix.

turo

@i2r: Das ist ein ganz normaler Perl Operator, siehe http://perldoc.perl.org/perlop.html#Conditional-Operator

@goerdi: Also wenn ich nicht total auf dem Schlauch stehe, ist mein Code zu Deinem funktional äquivalent.

Gruss,
turo
3xRaspberry PI, Homematic, SELVE Rollos, 1-wire, Logitech Harmony, Alexa, Fussbodenheizung (ESP8266), Netatmo

l2r

ahh verstanden und ich glaube ich werde deine Begeisterung dafür teilen :-)

danke
Wissen ist Macht.
Ich weiß nix.
Macht nix.

goerdi

Hi !

Zitat von: turo am 02 Februar 2016, 14:55:05
@goerdi: Also wenn ich nicht total auf dem Schlauch stehe, ist mein Code zu Deinem funktional äquivalent.

Gruss,
turo

Ich habs mal nachgeprüft (zu Not kann ich dir 2 screenshots machen)..
Zur Funktion:
vom Prinzip habe ich zwei "Befehle"
(1. alle Regler auf auto und 2.l alle Regler manual off)
Befehl 1 soll ausgefuehrt werden wenn die Aussentemperatur zwischen 5:25 und 23:30 unter 13 grad foder zwischen 23:31 und 5:24 unter 7.7 Grad faellt
Befehl 2 soll ausgefuehrt werden wenn die Aussentemperatur zwischen 5:25 und 23:30 über 13.3  grad oder zwischen 23:31 und 5:24 über 8.3 Grad steigt


Gruss Gerd

turo

Zitatvom Prinzip habe ich zwei "Befehle"
(1. alle Regler auf auto und 2.l alle Regler manual off)
Befehl 1 soll ausgefuehrt werden wenn die Aussentemperatur zwischen 5:25 und 23:30 unter 13 grad foder zwischen 23:31 und 5:24 unter 7.7 Grad faellt
Befehl 2 soll ausgefuehrt werden wenn die Aussentemperatur zwischen 5:25 und 23:30 über 13.3  grad oder zwischen 23:31 und 5:24 über 8.3 Grad steigt
Ja, das machen Dein Code und meiner. (Wobei man korrekterweise noch dazwischenfügen muss: "und wenn nicht, dann") Und wo ist jetzt das Problem? (Problem = Abweichung des beobachteten Systemverhaltens vom erwarteten Systemverhalten)

Gruss,
turo
3xRaspberry PI, Homematic, SELVE Rollos, 1-wire, Logitech Harmony, Alexa, Fussbodenheizung (ESP8266), Netatmo

goerdi

Hi !
Ok ich werde dem mal glauben schenken :)
Aber kannst du mir erklaeren wo dein "script" die zweit Zeitangabe hernimmt ? Wenn ich es in Fhem "einpflege" steht das im Status

timer_1_c1 03.02.2016 05:25:00   2016-02-02 16:20:45
timer_2_c1 02.02.2016 23:30:00   2016-02-02 16:20:45
timer_3_c2 03.02.2016 05:25:00    2016-02-02 16:20:45
timer_4_c2 02.02.2016 23:30:00    2016-02-02 16:20:45


Gruss Gerd

turo

#26
ZitatOk ich werde dem mal glauben schenken :)
Das könnte man schon formal beweisen  ;D, aber das habe ich schon ewig nicht mehr gemacht.

Deine 2. Zeitangabe taucht bei mir nicht auf, weil sie die Negation der 1. ist: Wenn es nicht 05:25-23:30 ist,
dann ist es 23:31-05:24.

Da die Zeiten ja nicht triggern, braucht es auch keine timer dazu. Ehrlich gesagt wundert es mich sogar, dass das DOIF in diesem Fall überhaupt Timer aufzieht.
EDIT: Jetzt nicht mehr: Ich habe mal in den Code gespickt: Die Zeiten werden natürlich für den Vergleich ausgerechnet, aber es werden keine Timer gesetzt - das sieht man auch bei einem list unter "Timers:"

Gruss,
turo
3xRaspberry PI, Homematic, SELVE Rollos, 1-wire, Logitech Harmony, Alexa, Fussbodenheizung (ESP8266), Netatmo

Damian

Zitat von: turo am 02 Februar 2016, 16:38:22

EDIT: Jetzt nicht mehr: Ich habe mal in den Code gespickt: Die Zeiten werden natürlich für den Vergleich ausgerechnet, aber es werden keine Timer gesetzt - das sieht man auch bei einem list unter "Timers:"

Gut beobachtet ;)

Gruß

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