Hauptmenü

[gelöst] Doif einmal im Tag

Begonnen von choetzu, 16 Juli 2017, 16:22:24

Vorheriges Thema - Nächstes Thema

choetzu

Hallo
Ich habe ein Doif kreiert,  welcher meine Poolandeckung öffnet, wenn die Aussentemperatur >2 Grad zur Wassertemp ist. Nun kann es vorkommen dass zwischzeitlich durch den Tag die Temperatur kurz (aufgrund von Wolken ) wieder unter >2 kommt und dann wieder drüber, wonach er wieder die Abdeckung öffnen will, obschon ich nicht geschlossen habe. Dies möchte ich vermeiden.

Kann man dies vermeiden indem man nur einmal pro Tag den ersten Befehl ausführt?  Und um Mitternacht stellt es wieder zurück..

Cmdwait?

Lg c



Gesendet von iPhone mit Tapatalk Pro
Raspi3, EnOcean, Zwave, Homematic


choetzu

Danke für den Hinweis. Ich habs gelesen. Leider ist es nicht ganz das selbe.

Ich habe es so definiert:

([09:00-18:30] and [PoolController:Pool_Temp_Num] > 21 and ([PoolController:Pool_Aussen_Num]-[PoolController:Pool_Temp_Num]) > 1) (set PoolController AUF_manuell on) (set Pushover msg title="POOL Abdeckung" message="Die Poolabdeckung ÖFFNET sich")

DOELSEIF ([09:00-18:30] and [PoolController:Pool_Temp_Num] > 21 and ([PoolController:Pool_Aussen_Num]-[PoolController:Pool_Temp_Num]) < 1 and [PoolController:AUF_manuell:sec] < 28800) (set Pushover msg title="POOL Abdeckung" message="Poolabdeckung SCHLIESSEN?.")

DOELSE

attr Pool_DOIF wait 600:600


Also wenn die Temperatur des Pools tagsüber >21 Grad und die Differenz Luft/Pool >1 Grad sind, dann soll es die Abdeckung öffnen und mich benachrichtigen. Wenn aber die Differenz tagsüber <1 Grad ist und der Pool vor weniger als 8 Stunden geöffnet wurde (so verhindere ich, dass ich gefragt werde, auch wenn es nicht offen ist), dann werde ich gefragt/benachrichtigt, ob ich die Abdeckung schliessen möchte.

Nehmen wir nun an die erste Bedingung (cmd1) wird erfüllt und 1std später die zweite Bedingung (cmd2), weils grad mehr als 10min wolkig ist, dann wird etwas später, nämlich wenn die Sonne wieder kommt, die Abdeckung wieder geöffnet (cmd1), obschon Sie offen ist..

Also ich möchte eigentlich, dass pro Tag die cmd-Sequenz nur einmal durchgeführt wird. Mit dem Linkbeispiel bring ich das nicht hin, da ich Zeitangaben in meinen Bedingungen habe.. Oder habe ich etwas überlesen?

Wichtig zu wissen ist, dass meine Abdeckung nur Befehle ausführen kann und keinen Zustand meldet. Also, ich kann nicht abfrage, ob es offen ist oder nicht.

Lg C
Raspi3, EnOcean, Zwave, Homematic

choetzu

Könnte es gehen, wenn ich einfach ein weitere Bedingung angebe, also ein cmd3

DOELSEIF ([09:00-18:30])


also Total:

([09:00-18:30] and [PoolController:Pool_Temp_Num] > 21 and ([PoolController:Pool_Aussen_Num]-[PoolController:Pool_Temp_Num]) > 1) (set PoolController AUF_manuell on) (set Pushover msg title="POOL Abdeckung" message="Die Poolabdeckung ÖFFNET sich")

DOELSEIF ([09:00-18:30] and [PoolController:Pool_Temp_Num] > 21 and ([PoolController:Pool_Aussen_Num]-[PoolController:Pool_Temp_Num]) < 1 and [PoolController:AUF_manuell:sec] < 28800) (set Pushover msg title="POOL Abdeckung" message="Poolabdeckung SCHLIESSEN?.")

DOELSEIF ([09:00-18:30])

DOELSE


dann bleibt er doch nach cmd1 und cmd2 bei cmd3 hängen.. Oder?
Raspi3, EnOcean, Zwave, Homematic

amenomade

Nein, der wird nicht in cmd_3 kommen, da kein weiteres "Zeit" Event generiert wird.

Zitat(so verhindere ich, dass ich gefragt werde, auch wenn es nicht offen ist)
Hast du keine andere Möglichkeit um zu wissen, ob es offen ist? Irgendwelches Reading oder State ?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

choetzu

Ich könnte mir ein Dummy basteln, der den Zustand übernimmt. Sehe aber grad nicht, wie dies mein Problem lösen sollte ;) was übersehe ich?
Raspi3, EnOcean, Zwave, Homematic

amenomade

Dein Problem ist : [PoolController:AUF_manuell:sec] < 28800

Wenn Du folgendes hättest, hättest Du kein Problem:
[?Pool] eq "offen"
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

choetzu

Nicht ganz. Denn während cmd1 die Abdeckung öffnet, macht cmd2 nicht anderes als mir ne Nachricht schicken. Die Abdeckung geht nicht zu, da ich dies immer manuell machen will (=Sicherheit). Wenn also cmd2 ist und dann wieder sonnig, schaltet es mir die Abdeckung wieder auf öffnen obschon ich gar nicht geschlossen habe..

Oder bin ich völlig verwirrt?
Raspi3, EnOcean, Zwave, Homematic

amenomade

#8
Ja aber dann könntest Du in Bedingung 1 " and [?Pool] eq "zu" " hinzufügen, und in Bedingung 2 "and [?Pool] eq "offen".

Vielleicht verstehe ich nicht ganz, wie dein Ding funktioniert. Was ist Poolcontroller für ein Device? Kannst Du ein "list" davon posten?

Ansonsten könnte man auch in Bedingung 2 testen, ob cmd_1 vorher durchgeführt worden ist. Aber was denn, wenn jemand "manuell" irgendwann geöffnet oder geschlossen hat?

Deswegen wäre die einfachste Lösung m.A. mit einem Zustand. Kann man nicht einfach testen, ob PoolController:AUF_manuell auf "on" ist?

EDIT: und was soll um 18:30 passieren, wenn es immer noch im Zustand cmd_1 ist?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Brockmann

Zitat von: choetzu am 16 Juli 2017, 16:22:24
Kann man dies vermeiden indem man nur einmal pro Tag den ersten Befehl ausführt?  Und um Mitternacht stellt es wieder zurück..
Ihr seid zwar in der Diskussion zwar schon etwas weiter, aber das "einmal pro Tag" könntest Du so lösen:

Die zusätzliche Bedingung
DOELSEIF([00:00])()
wird um Mitternacht wahr und setzt das DOIF dann auf diesen Status (Nummer X oder zugeordneter cmdstate).
In der Bedingung für den nur einmal auszuführenden Befehl dann zusätzlich den Status des DOIFs abfragen
and [Name_des_DOIFs] eq "Status_der_Mitternachtsbedingung"

Oder mal komplett:
define DI_Test DOIF (Bedingung1 eq "Parameter1" and Bedingung2 >= Parameter2 and [DI_Test] eq "init")
  (set irgendwas irgendwie)
DOELSEIF (Bedingung1 eq "Parameter1" and Bedingung2 < Parameter2 and [irgendwas:state:sec] < 28800)
  (set irgendwas anders)
DOELSEIF ([00:00])
  ()
attr DI_Test cmdstate an|aus|init

ungetestet und ohne Gewähr...

Damit sollte die erste Aktion grundsätzlich nur einmal pro Tag ausgeführt werden, wenn zum ersten Mal nach Mitternacht die Bedingungen erfüllt sind.

amenomade

#10
Nein, wird nicht gehen.

and [DI_Test] eq "init"Zuerst wäre es eher "initialized" statt "init". Zweitens geht ein DOIF nur auf "initialized" wenn man entweder die Definition ändert, oder explizit ein set <doif> intialize macht.
Mit deiner Definition, wird das DOIF um Mitternacht auf cmd_3 wechseln, und kann dann nie mehr cmd_1 erreichen.

Es gibt zwar eine andere Möglichkeit, das zu machen, was choetzu will. Aber ich versuche zuerst zu wissen, ob es eine einfachere Möglichkeit über einen Zustant gäbe.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Otto123

Hi,

Wenn Du es so machst:([09:00-18:30] and [PoolController:Pool_Temp_Num] > 21 and ([PoolController:Pool_Aussen_Num]-[PoolController:Pool_Temp_Num]) > 1) (set PoolController AUF_manuell on) (set Pushover msg title="POOL Abdeckung" message="Die Poolabdeckung ÖFFNET sich")
Also ohne einen weiteren Zweig!
Macht er es genau einmal am Tag  ;)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

amenomade

Stimmt. Aber er fragt dann nicht mehr, ob man irgendwann schliessen möchtet ;)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Otto123

Ich habe aber die Textaufgabe aus #1 so verstanden  8)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Brockmann

Zitat von: amenomade am 17 Juli 2017, 21:25:42
Nein, wird nicht gehen.

and [DI_Test] eq "init"Zuerst wäre es eher "initialized" statt "init". Zweitens geht ein DOIF nur auf "initialized" wenn man entweder die Definition ändert, oder explizit ein set <doif> intialize macht.
Mit deiner Definition, wird das DOIF um Mitternacht auf cmd_3 wechseln, und kann dann nie mehr cmd_1 erreichen.
Ich finde, mit Beurteilungen wie "wird nicht gehen" sollte man sich zurückhalten, solange man den Code nicht selbst ausprobiert oder zumindest komplett gelesen und verstanden hat.

"init" wird verwendet, weil dieser Status per cmdState-Attribute für cmd_3 gesetzt wird. Deshalb kann das DOIF anschließend auch wieder cmd_1 bzw "an" erreichen und deshalb "wird es gehen".

choetzu

Hallo,

herzlichen Dank für Eure Hilfen. Ich werde beide mal testen. Einmal per Dummy mit Zustand und einmal mit DOIF und Mitternachtszurücksetzung. Wobei ich die Mitternachtszurücksetzung nicht ganz verstehe (cmdstate an/aus/init), da muss ich wohl noch etwas Zeit investieren. Und was passiert nach 18.30, wenn er auf cmd2 steckt ? Denn da greift ja weder cmd1 noch cmd2 und auch nicht cmd3 sondern springt zum DOELSE, also cmd4.  Oder muss cmd3 erfüllt sein, bevor es zu DOELSE (cmd4) geht?

lg c

Raspi3, EnOcean, Zwave, Homematic

Otto123

Zitat von: choetzu am 18 Juli 2017, 10:46:40
Hallo,

herzlichen Dank für Eure Hilfen. Ich werde beide mal testen. Einmal per Dummy mit Zustand und einmal mit DOIF und Mitternachtszurücksetzung. Wobei ich die Mitternachtszurücksetzung nicht ganz verstehe (cmdstate an/aus/init), da muss ich wohl noch etwas Zeit investieren. Und was passiert nach 18.30, wenn er auf cmd2 steckt ? Denn da greift ja weder cmd1 noch cmd2 und auch nicht cmd3 sondern springt zum DOELSE, also cmd4.  Oder muss cmd3 erfüllt sein, bevor es zu DOELSE (cmd4) geht?

lg c
Dieser Satz aus der Doku sollte doch die Wirkungsweise erklären, zumindest wenn man ihn öfters mit seinem eigenen Code liest  ;)
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.
Noch von mir der Zusatz (so stelle ich mir das vor, heißt nicht das es unbedingt stimmt)
Ein Event von einem der beteiligten Geräte triggert das DOIF, daraufhin werden die Bedingungen in den einzelnen Zweigen geprüft. Passt die Bedingung in einem Zweig und führt zur Zustandsänderung, ist an der Stelle erstmal Schluss. Ändert sich der Zustand im Zweig nicht, führt das ohne do always nicht zur wiederholten Ausführung des Kommandos.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

choetzu

Zitat von: Otto123 am 18 Juli 2017, 11:41:37
Dieser Satz aus der Doku sollte doch die Wirkungsweise erklären, zumindest wenn man ihn öfters mit seinem eigenen Code liest  ;)Noch von mir der Zusatz (so stelle ich mir das vor, heißt nicht das es unbedingt stimmt)
Ein Event von einem der beteiligten Geräte triggert das DOIF, daraufhin werden die Bedingungen in den einzelnen Zweigen geprüft. Passt die Bedingung in einem Zweig und führt zur Zustandsänderung, ist an der Stelle erstmal Schluss. Ändert sich der Zustand im Zweig nicht, führt das ohne do always nicht zur wiederholten Ausführung des Kommandos.

Gruß Otto

Herzlichen Dank für die Erläuterung. Genau deshalb habe ich meine liebe Mühe mit der Mitternachtszurücksetzung. Wenn ich doch bei cmd2 (nämlich msg Abdeckung schliessen?) bin und dann wird es wieder >1 Grad wärmer, dann spring ich doch zu cmd1 zurück, ohne dass ich bei cmd3 (Mitternachtszurücksetzung) war. Oder auch wenn es 19 Uhr ist, dann kommt doch weder cmd1, cmd2 noch cmd3 zum Tragen...

irgendwo ist bei mir der Wurm drin.
Raspi3, EnOcean, Zwave, Homematic

choetzu

#18
so, jetzt habe ich Brockmanns Variante kapiert und es hat beim Testen auch glatt funktioniert. TOP. Ich verstehe nun auch das CMDstate prinzip.. Das hat mir schlussendlich geholfen.. Mein DOIF sieht nun wie folgt aus:


([09:00-18:30] and [PoolController:Pool_Temp_Num] > 21 and ([PoolController:Pool_Aussen_Num]-[PoolController:Pool_Temp_Num]) > 0.5 and [TEMP_Abdeckung_Pool_DOIF] eq "INIT")
  (set PoolController AUF_manuell on) (set Pushover msg title="POOL Abdeckung" message="Die Poolabdeckung ÖFFNET sich")

DOELSEIF ([PoolController:Pool_Temp_Num] > 21 and ([PoolController:Pool_Aussen_Num]-[PoolController:Pool_Temp_Num]) < 0.5 and [TEMP_Abdeckung_Pool_DOIF] eq "AUF")
  (set Pushover msg title="POOL Abdeckung" message="Poolabdeckung SCHLIESSEN? ")

DOELSEIF ([00:00])
  ()

DOELSE


ATTR cmdState noch auf AUF|ZU|INIT gemacht...

Ich musste noch - zusätzlich zum Vorschlag von Brockmann - in der zweiten Bedingung eine Verbindung zu CMD1 (also "AUF") machen, damit das dann auch wirklich funktioniert..

hat jemand Einwände? ;)

Jetzt versuch ich noch via Dummy den Zustand der Abdeckung festzuhalten, damit ich es dann auch noch ins DOIF einbauen kann..
Raspi3, EnOcean, Zwave, Homematic

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Frank_Huber

Zitat von: choetzu am 18 Juli 2017, 16:25:12
so, jetzt habe ich Brockmanns Variante kapiert und es hat beim Testen auch glatt funktioniert. TOP. Ich verstehe nun auch das CMDstate prinzip.. Das hat mir schlussendlich geholfen.. Mein DOIF sieht nun
hat jemand Einwände? ;)

Einwände nicht, aber das DOELSE am Ende kann denke ich raus. das hat keinen Zweck.

choetzu

#21
Zitat von: Frank_Huber am 18 Juli 2017, 16:45:18
Einwände nicht, aber das DOELSE am Ende kann denke ich raus. das hat keinen Zweck.

Ganz wichtig, danke. Denn mit dem DOELSE geht es nicht, denn nach Mitternacht würde es auf cmd4 gehen, was somit dann nicht mehr funktionieren würde (da nicht mehr INIT).

Danke für den Hinweis..

Zitat von: amenomade am 18 Juli 2017, 16:44:23
and [?$SELF:cmd] eq "1"

danke, ginge auch anstelle von "AUF". oder willst du mich auf einen Fehler hinweisen?
Raspi3, EnOcean, Zwave, Homematic

amenomade

Nicht nur "kann" sondern MUSS weg. Ansonsten wechselt das DOIF auf cmd_4 sobald die Bedingung 2 nicht mehr wahr ist, und das DOIF ist dann konkret wieder Bereit auf cmd_1 zu gehen, sobald Bedingung 1 wieder wahr ist.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

Wobei... es wird sowieso nicht wie gewünscht funktionieren. Egal ob DOELSE oder nicht, wird das DOIF nach cmd_2 wieder bereit für cmd_1.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

Sowas funktioniert wie gewünscht:

([schalter] eq "on" and [?$SELF:cmd] ne "2")
   (öffnen)
DOELSEIF ([schalter] eq "off" and [?$SELF:cmd] eq "1")
   (schliessen)
DOELSEIF ([schalter1] eq "on")
   ()


schalter simuliert deine Bedingungen
schalter1 wäre bei dir [00:00] zum Reinit einmal am Tag um Mitternacht.

cmd_1 wird nur durchgeführt, wenn Du vorher nicht im cmd_2 bist.
cmd_2 wird nur durchgeführt, wenn Du aus cmd_1 kommst.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

Also:
([09:00-18:30]
and [PoolController:Pool_Temp_Num] > 21
and ([PoolController:Pool_Aussen_Num]-[PoolController:Pool_Temp_Num]) > 0.5
and [?$SELF:cmd] ne "2")
(set PoolController AUF_manuell on)
(set Pushover msg title="POOL Abdeckung" message="Die Poolabdeckung ÖFFNET sich")

DOELSEIF ([09:00-18:30]
and [PoolController:Pool_Temp_Num] > 21
and ([PoolController:Pool_Aussen_Num]-[PoolController:Pool_Temp_Num]) < 0.5
and [?$SELF:cmd] eq "1" )
(set Pushover msg title="POOL Abdeckung" message="Poolabdeckung SCHLIESSEN?.")

DOELSEIF ([00:00])
()


Aber wie schon gesagt:
- wenn z.B. jemand den Pool manuell geöffnet hat, wird das DOIF nix tun (und nicht durch cmd_2 fragen)
- der Pool wurde durch das DOIF geöffnet, aber jemand schliesst den manuell => cmd_2 wird trotzdem fragen, ob Du schliessen willst.
- der Pool wurde manuell geöffnet, dann manuell geschlossen. Werden die Bedigungen 1 dann wahr, wird durch das DOIF den Pool wieder geöffnet.

Deswegen bleibe ich auf meiner Empfehlung: irgendwie einen echten Zustand des Pools ablesen, egal ob manuell oder automatische angestossen.



Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

choetzu

Hallo,
super, das werde ich so machen. Frage:

Du machst bei der cmd1-Bedingung
and [?$SELF:cmd] ne "2")

Wieso nicht
and [?$SELF:cmd] eq "3")

?

Kommt doch m.E. aufs Selbe raus, oder?
Raspi3, EnOcean, Zwave, Homematic

amenomade

Zitat
and [?$SELF:cmd] eq "3")

Kommt doch m.E. aufs Selbe raus, oder
Ausser wenn das System neugestartet worden ist, oder wenn Du die definition gerade geändert hast, oder wenn Du ein "set <doif> initialize" durchführst. Dann ist cmd auf "0". Ansonsten hast Du recht; im "normalen Betrieb" könnte eq "3" funktionieren.

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

choetzu

So, ich habe nun den Zustand der Abdeckung mit eingebaut. Weiter musste ich noch eine Anpassung machen. Bei
and [?$SELF:cmd] ne "2") muss anstelle von cmd nämlich cmd_nr stehen, sonst geht es nicht. Denn bei mir stand bei cmd 1.2 und dann hat es natürlich nicht funktioniert. Hier die richtige Definition:

([09:00-18:30]
and [Abdeckung_Dummy] eq "GESCHLOSSEN"
and [PoolController:Pool_Temp_Num] > 21
and ([PoolController:Pool_Aussen_Num]-[PoolController:Pool_Temp_Num]) > 0.1
and [?$SELF:cmd_nr] ne "2")
(set PoolController AUF_manuell on)
(set Pushover msg title="POOL Abdeckung" message="Die Poolabdeckung ÖFFNET sich")

DOELSEIF
([09:00-23:00]
and [Abeckung_Dummy] eq "OFFEN"
and [PoolController:Pool_Temp_Num] > 21
and ([PoolController:Pool_Aussen_Num]-[PoolController:Pool_Temp_Num]) < 0.1
and [?$SELF:cmd_nr] eq "1" )
(set Pushover msg title="POOL Abdeckung" message="Poolabdeckung SCHLIESSEN?.")

DOELSEIF ([00:00])
()


Danke nochmals..
Raspi3, EnOcean, Zwave, Homematic

Otto123

Moin,

poste doch für so eine finale Lösung doch die Raw Definition (ohne setState), da sind die attr mit dabei, die sind bei DOIF doch sehr wesentlich!


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

choetzu

aber gerne doch.

defmod TEMP_Abdeckung_Pool_DOIF DOIF ([09:00-18:30] \
and [Abdeckung_Dummy] eq "GESCHLOSSEN"\
and [PoolController:Pool_Temp_Num] > 21 \
and ([PoolController:Pool_Aussen_Num]-[PoolController:Pool_Temp_Num]) > 0.1\
and [?$SELF:cmd_nr] ne "2") \
(set PoolController AUF_manuell on) \
(set Pushover msg title="POOL Abdeckung" message="Die Poolabdeckung ÖFFNET sich") \
\
DOELSEIF \
([09:00-23:00] \
and [Abdeckung_Dummy] eq "OFFEN"\
and [PoolController:Pool_Temp_Num] > 21 \
and ([PoolController:Pool_Aussen_Num]-[PoolController:Pool_Temp_Num]) < 0.1\
and [?$SELF:cmd_nr] eq "1" )\
(set Pushover msg title="POOL Abdeckung" message="Poolabdeckung SCHLIESSEN?.") \
\
DOELSEIF ([00:00])\
()
attr TEMP_Abdeckung_Pool_DOIF group 3_Temp,5_Pool
attr TEMP_Abdeckung_Pool_DOIF room Automatisierung
attr TEMP_Abdeckung_Pool_DOIF wait 600:600


was anderes: Es führen ja bekanntlich viele Wege nach Rom. Hätte ich das selbe auch mit THRESHOLD machen können? Ich habe dieses Hilfs-Modul grad entdeckt, dass sich ja offensichtlich auf Sensoren, somit auch Tempsensoren, ausrichtet...
Raspi3, EnOcean, Zwave, Homematic

Damian

Zitat von: choetzu am 22 Juli 2017, 15:24:34
was anderes: Es führen ja bekanntlich viele Wege nach Rom. Hätte ich das selbe auch mit THRESHOLD machen können? Ich habe dieses Hilfs-Modul grad entdeckt, dass sich ja offensichtlich auf Sensoren, somit auch Tempsensoren, ausrichtet...

Nur in Verbindung mit anderen Modulen.

THRESHOLD kann keine Verzögerungen, keine Zeitangaben, kann nur max. zwei Sensoren überwachen, kann nur eine AND Verknüpfung ...

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

Otto123

Zitat von: choetzu am 22 Juli 2017, 15:24:34

was anderes: Es führen ja bekanntlich viele Wege nach Rom. Hätte ich das selbe auch mit THRESHOLD machen können? Ich habe dieses Hilfs-Modul grad entdeckt, dass sich ja offensichtlich auf Sensoren, somit auch Tempsensoren, ausrichtet...
Moin,

THRESHOLD ist aus meiner Sicht der klassische Zweipunktregler, der kümmert sich autark um einen Ist/Sollwert Abgleich. Wie Damian schon sagt, brauchst Du dann andere Module.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz