Hauptmenü

bedingtes Notify

Begonnen von Mopedpaul, 06 Februar 2013, 01:27:10

Vorheriges Thema - Nächstes Thema

Mopedpaul

Hallo,
gibt es auch die Möglichkeit ein Notify von Bedingungen abhängig zu machen. MeinProblem - ich habe mir einen Dummy Schalter für den Poolbetrieb eingerichtet, da ein Außenpool ja in unseren Breitengraden für gewöhnlich nicht das ganze Jahr betrieben wird. Über Notify Befehle wir die Filterpumpe gesteuert, fest und abhängig von der Außen Temp usw. Ich habe zwar im Notify eine Abfrage, ob Pollbetrieb Ja/Nein, aber erst einmal wird der Notify ja alle 15 min ausgeführt, um dann festzustellen, das es Winter ist (Poolbetrieb Off und sicherlich unter 27 Grad). Sinnvoll ist das so ja nicht.
Auszug:
define P_Filter_09 at *09:00:00 {if ("$value{Poolbetrieb}" eq "on") {fhem("set Poolpumpe on-for-timer 3000")}}
attr P_Filter_09 room Pool
define P_Filter_19 at *19:00:00 {if ("$value{Poolbetrieb}" eq "on") {fhem("set Poolpumpe on-for-timer 3000")}}
attr P_Filter_19 room Pool

define Poolwalz at +*00:30:00 {if (ReadingsVal("Temp_Aussen","temperature",20) > 27) {\\
fhem("set Poolpumpe on-for-timer 300") }}
attr Poolwalz room Pool
Auszug Ende:
Wie kann man das Umschreiben, daß der ganze Block incl der Notify nur ausgeführt wird, wenn der Dummy Poolbetrieb On ist ?
Danke MfG Mopedpaul
System:FHEM 5.7 auf Intel NUC  mit 1xCUL(433) ,1xCUNO V2 (868)mit Onewire,2xNetIO mit Onewire , HMLAN
,Max Cube , Philips Hue, webViewControll, MiLight
Devices:FS20,Onewire (Cuno+NetIO),Intertechno ,Homematic (Keymatic & TC & SD) Max ,Solaranlage 7,3kWP mit Solarlog 200

Zrrronggg!

Das ist eigentlich nicht schädlich, kann man so machen. Und ich mache so Kram auch so wie du es getan hast.


Die andere Methode wäre den Statuswechsel des Dummys zum Anlass zu nehmen, die Poolbetrieb defines erst zu erstellen.

etwa so:

define Create_Poolbetrieb9 notify Poolbetrieb  {if ("$value{Poolbetrieb}" eq "on") {fhem("define P_Filter_09  at *09:00:00 set Poolpumpe on-for-timer 3000 ")} else {fhem("delete P_Filter_09")}  }

define Create_Poolbetrieb19 notify Poolbetrieb  {if ("$value{Poolbetrieb}" eq "on") {fhem("define P_Filter_19  at *19:00:00 set Poolpumpe on-for-timer 3000 ")} else {fhem("delete P_Filter_19")}  }

Oder:

define Create_PoolbetriebTemp notify Poolbetrieb:on  {if (ReadingsVal("Temp_Aussen","temperature",20) > 27) {fhem("define Poolwalz at +*00:30:00 set Poolpumpe on-for-timer 300") }}
define Delete_PoolbetriebTemp notify Poolbetrieb:off  delete Poolwalz

Dann werden mit dem Umschalten von Poolbetrieb die ganzen Arien erst erstellt bzw. gelöscht.

(alles aus dem Kopf hingetippt, ungetestet)

Ich würde allerdings deine Methode vorziehen, das kostet kein Brot und ist meiner Auffassung nach letztlich klarer.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL