Fenster zur vollen Stunde öffnen und zur halben Stunde schließen

Begonnen von Groej, 07 Mai 2016, 21:19:00

Vorheriges Thema - Nächstes Thema

Groej

Juten Abend an alle,

ich habe eine Taupunktsteuerung für meine Garage. Funktioniert auch soweit alles. Ich möchte allerdings das zu jeder vollen Stunde das Fenster und der Lüfter eingeschaltet wird und zu jeder halben Stunde wieder ausgeschaltet wird.

Nun zu meinen Problem. Ab und zu kommt es vor das beide Aktoren geschaltet und danach gleich wieder abgeschaltet werden. Vor FHEM haben ich mit linknx gearbeitet. Dort ging das so ähnlich wie hier bei FHEM. Kann es sein das FHEM bei jeder vollen Stunde auch die halbe Stunde rechnet und nicht nur die Minuten 00:30 oder mach ich bei dem Programm was falsch?

define garage_lueften_ein at +*01:00 {\
my $tpa1 = Value("taupunkt_auto");;\
my $tpa2 = ReadingsVal("fhem_tp_garage",'state',0) - 5;;\
my $tpa3 = ReadingsVal("wh_tp_aussen",'state',0);;\
if ($tpa1 eq "on" && $tpa3 <= $tpa2) {\
fhem "set EIB_1000 auf ;; set EIB_1100 on"\
}\
}
attr garage_lueften_ein alignTime 00:00

define garage_lueften_aus at +*00:30 {\
my $tpaa1 = Value("taupunkt_auto");;\
my $tpaa2 = Value("EIB_1000");;\
my $tpaa3 = Value("EIB_1100");;\
if ($tpaa1 eq "on" && $tpaa2 eq "auf" && $tpaa3 eq "on") {\
fhem "set EIB_1000 zu ;; set EIB_1100 off"\
}\
}
attr garage_lueften_aus alignTime 00:00


DANKE

Gruß

Jörg
FHEM - RaspPi2 - KNXD - KNX - CUL 868 - FS20 - HMS - WH3080 - Signalduino 433 MHz - Telegram - Anel Elektronik IP Steckdosen - BME280

igami

Du könntest das auch einfacher mit einem DOIF lösen. In der Commandref findest du entsprechende Beispiele.

Grüße
igami
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Groej

Hallo igami,

ok danke für den Tipp. Komm gerade nicht dahinter was Du genau meist. Meinst Du nach einschalten zur vollen Stunde für 30 Minuten einen wait auszuführen?

Gruß

Jörg
FHEM - RaspPi2 - KNXD - KNX - CUL 868 - FS20 - HMS - WH3080 - Signalduino 433 MHz - Telegram - Anel Elektronik IP Steckdosen - BME280

igami

Zitat
Zeitangaben nach Zeitraster ausgerichtet   back

Das Format lautet: [:MM] MM sind Minutenangaben zwischen 00 und 59.

Anwendungsbeispiel: Viertelstunden-Gong

define di_gong DOIF ([:00])
    ({system ("mplayer /opt/fhem/Sound/BigBen_00.mp3 -volume 90 −really−quiet &")})
DOELSEIF ([:15])
    ({system ("mplayer /opt/fhem/Sound/BigBen_15.mp3 -volume 90 −really−quiet &")})
DOELSEIF ([:30])
    ({system ("mplayer /opt/fhem/Sound/BigBen_30.mp3 -volume 90 −really−quiet &")})
DOELSEIF ([:45])
    ({system ("mplayer /opt/fhem/Sound/BigBen_45.mp3 -volume 90 −really−quiet &")})
Daraus ergibt sich dann

define garage_lueften DOIF
([:00] and <Taupunktabfrage>)(
  set <lüften>
)
DOELSEIF
([:30] and <Taupunktabfrage>)(
  set <nicht mehr lüften>
)


Grüße
igami
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

RadioJames

Hallo Groej!

Das erste at wird jede Stunde aufgerufen, das zweite jede halbe Stunde, also auch zur vollen Stunde.
Das bedeutet, es hängt von der Aufrufreihenfolge seitens FHEM ab, was passiert.

Nehmen wir einmal an, "garage_lueften_ein" passiert zuerst und die Bedingungen sind erfüllt, dann würden deine beiden Aktoren eingeschaltet.
Würde dann danach gleich "garage_lueften_aus" ausgeführt, würden deine beiden Aktoren auf sofort wieder ausgeschaltet.

Wenn du deinen Code in dieser Weise beibehalten willst, musst du noch einen Mechanismus implementieren, der dieses Verhalten beim Ausschalten berücksichtigt. Allerdings bleibt die Unsicherheit, welches at von FHEM zuerst abgearbeitet wird.
Daher ist der von igami vorgeschlagene Ansatz wohl der bessere. Informiere dich über die DOIF Funktionalität. Das ist sicherlich nicht ganz so einfach, wird sich aber auszahlen, da DOIF sehr mächtig ist. Dazu kann ich aber nicht viel sagen, da ich meine fhem.cfg eintarge minimal halte und lieber in Perl Module auslagere

Ich kann dir noch erzählen, welchen Weg ich einschlagen würde:
Ich würde das zweite at dynamisch programmieren und zwar erst in dem Codeteil von "garage_lueften_ein", bei dem beide Aktoren geschaltet werden. Dann natürlich nicht periodisch, sondern einmalig.

Grüße
James
There are 10 kind of people. Those who understand binary and those who don't.

Groej

Moin,

danke für eure Tipps. Ich werd das die Tage mal ausprobieren ob ich das hin bekomme. Heute wird erstmal das Rad bewegt bei dem Wetter :).

Schönen Sonntag

Jörg
FHEM - RaspPi2 - KNXD - KNX - CUL 868 - FS20 - HMS - WH3080 - Signalduino 433 MHz - Telegram - Anel Elektronik IP Steckdosen - BME280

rudolfkoenig

ZitatKann es sein das FHEM bei jeder vollen Stunde auch die halbe Stunde rechnet und nicht nur die Minuten 00:30 oder mach ich bei dem Programm was falsch?
Ich tippe auf einen Denkfehler beim zweiten at: der sollte mAn mit +*01:00 definiert sein, mit aligntime 00:30.

Groej

Moin Rudolf,

das probier ich mal schnell. Werd ja dann sehen heute Abend was passiert ist. Danke.

Gruß

Jörg
FHEM - RaspPi2 - KNXD - KNX - CUL 868 - FS20 - HMS - WH3080 - Signalduino 433 MHz - Telegram - Anel Elektronik IP Steckdosen - BME280

RadioJames

ZitatIch tippe auf einen Denkfehler beim zweiten at: der sollte mAn mit +*01:00 definiert sein, mit aligntime 00:30.
Interessant, wieder etwas gelernt, kannte dieses Attribut bislang nicht.

Allerdings denke ich, dass es auch für das erste at gesetzt werden muss und zwar auf die volle Stunde: aligntime 00:00.
There are 10 kind of people. Those who understand binary and those who don't.

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

RadioJames

There are 10 kind of people. Those who understand binary and those who don't.

Groej

Nabend,

ich hab Rudolfs Tipp als erstes ausprobiert weil es auch am einfachsten war. Bis jetzt hatte ich heute kein an- und sofortiges ausschalten der Aktoren.
Ich schließe das Thema erstmal und beobachte die nächsten Tage weiter.

Danke noch mal an alle.

Gruß

Jörg
FHEM - RaspPi2 - KNXD - KNX - CUL 868 - FS20 - HMS - WH3080 - Signalduino 433 MHz - Telegram - Anel Elektronik IP Steckdosen - BME280