Doif greift nicht bei neuen reading

Begonnen von brain666, 07 April 2022, 13:51:28

Vorheriges Thema - Nächstes Thema

brain666

Hallo zusammen,

wegen der derzeitig hohen Heizölpreise habe ich meine Ölheizung umgestellt auf reinen Warmwasserbetrieb
und die Heizfunktion übernhemen ab sofort Infarotheizkörper mit einer Leistung von 1200 Watt

Angebunden habe ich die Heizkörper einfach über eine Tasmota Steckdose mit Leistungsmessung.

jetzt wollte ich mir ein Doif einstellen für eine art Automatik Funktion
dafür habe ich mir einen Dummy erstellt der eigentlich nur den Sinn erfüllen soll einer An / Aus Funktion welche ich in mein doif mit integrieren wollte damit ich das doif auf knopf druck an oder aus setze.

Das Problem ist der Dummy Jamie_IR_Heizung_Automatik_bei_ueber_1500Watt_Solar  steht auf "an" die ganze Zeit
wenn dann erstmalig  [MQTT2_m2s:SummPower] > 1500 triggerd schaltet er die Heizung auch an, aber wenn dann einige Zeit später eigentlich [MQTT2_m2s:SummPower] < 1500  triggern sollte passiert nichts :(



define Jamie_IR_Heizung_Automatik_bei_ueber_1500Watt_Solar dummy
setuuid Jamie_IR_Heizung_Automatik_bei_ueber_1500Watt_Solar 624abbad-f33f-078c-8d23-49fa572133a0dc97
attr Jamie_IR_Heizung_Automatik_bei_ueber_1500Watt_Solar devStateIcon off:taster_ch_aus_rot@red on:taster_ch_an_gruen@green
attr Jamie_IR_Heizung_Automatik_bei_ueber_1500Watt_Solar group solar_Jamie
attr Jamie_IR_Heizung_Automatik_bei_ueber_1500Watt_Solar icon sani_solar_temp
attr Jamie_IR_Heizung_Automatik_bei_ueber_1500Watt_Solar room MQTT2_DEVICE
attr Jamie_IR_Heizung_Automatik_bei_ueber_1500Watt_Solar setList on off
attr Jamie_IR_Heizung_Automatik_bei_ueber_1500Watt_Solar webCmd :



define Jamie_IR_Heizung_an_bei_Solar_DOIF_1 DOIF ([13:00:00-18:00:00|Mo Di Mi Do Fr] and [Jamie_IR_Heizung_Automatik_bei_ueber_1500Watt_Solar:state] eq "on" and [MQTT2_m2s:SummPower] > 1500) (set Jamie_Z on; set HausBesseBot message IR-Heizung_Automatik --> Solar über 1500Watt --> aktiviere Jamie Heizung)
DOELSEIF ([07:00:00-18:00:00|Sa So] and [Jamie_IR_Heizung_Automatik_bei_ueber_1500Watt_Solar:state] eq "on" and [MQTT2_m2s:SummPower] > 1500) (set Jamie_Z on; set HausBesseBot message IR-Heizung_Automatik --> Solar über 1500Watt --> aktiviere Jamie Heizung)
DOELSEIF ([13:00:00-18:00:00|Mo Di Mi Do Fr] and [MQTT2_m2s:SummPower] < 1500 and [Jamie_IR_Heizung_Automatik_bei_ueber_1500Watt_Solar:"^on$"]) (set Jamie_Z off; set HausBesseBot message IR-Heizung_Automatik --> Solar unter 1500Watt --> deaktiviere Jamie Heizung)
DOELSEIF ([07:00:00-18:00:00|Sa So] and [MQTT2_m2s:SummPower] < 1500 and [Jamie_IR_Heizung_Automatik_bei_ueber_1500Watt_Solar:"^on$"]) (set Jamie_Z off; set HausBesseBot message IR-Heizung_Automatik --> Solar unter 1500Watt --> deaktiviere Jamie Heizung)
setuuid Jamie_IR_Heizung_an_bei_Solar_DOIF_1 624abd02-f33f-078c-367b-6afbdb89e9789f57
attr Jamie_IR_Heizung_an_bei_Solar_DOIF_1 do always
attr Jamie_IR_Heizung_an_bei_Solar_DOIF_1 room MQTT2_DEVICE
attr Jamie_IR_Heizung_an_bei_Solar_DOIF_1 weekdays So,Mo,Di,Mi,Do,Fr,Sa



ich habe mir abhilfe erstmal geschaffen mit einen at einmal die Minute
durch den checkall wird erneut geprüft und es wird ensprechen an oder aus geschaltet


define Heizung_an_bei_Solar_DOIF_1 at +*00:01:00 set Jamie_IR_Heizung_an_bei_Solar_DOIF_1 checkall;; set Selina_IR_Heizung_an_bei_Solar_DOIF_1 checkall







---> Update wärend des schreibens hier habe ich doch noch das Problem selber  erkannt "[Jamie_IR_Heizung_Automatik_bei_ueber_1500Watt_Solar:"^on$"]


([13:00:00-18:00:00|Mo Di Mi Do Fr] and [Jamie_IR_Heizung_Automatik_bei_ueber_1500Watt_Solar:state] eq "on" and [MQTT2_m2s:SummPower] > 1500) (set Jamie_Z on; set HausBesseBot message IR-Heizung_Automatik -> Solar über 1500Watt -> aktiviere Jamie Heizung)
DOELSEIF ([07:00:00-18:00:00|Sa So] and [Jamie_IR_Heizung_Automatik_bei_ueber_1500Watt_Solar:state] eq "on" and [MQTT2_m2s:SummPower] > 1500) (set Jamie_Z on; set HausBesseBot message IR-Heizung_Automatik -> Solar über 1500Watt -> aktiviere Jamie Heizung)
DOELSEIF ([13:00:00-18:00:00|Mo Di Mi Do Fr] and [MQTT2_m2s:SummPower] < 1500 and [Jamie_IR_Heizung_Automatik_bei_ueber_1500Watt_Solar:state] eq "on") (set Jamie_Z off; set HausBesseBot message IR-Heizung_Automatik -> Solar unter 1500Watt -> deaktiviere Jamie Heizung)
DOELSEIF ([07:00:00-18:00:00|Sa So] and [MQTT2_m2s:SummPower] < 1500 and [Jamie_IR_Heizung_Automatik_bei_ueber_1500Watt_Solar:state] eq "on") (set Jamie_Z off; set HausBesseBot message  IR-Heizung_Automatik -> Solar unter 1500Watt -> deaktiviere Jamie Heizung)


Damian

Du hast nur zwei Fälle. set Jamie_Z on und set Jamie_Z off, dafür brauchst du nur eine Bedingung und einen DOELSE-Fall, mehr nicht.

Alles andere ist schwer durchschauen.

Solche Abfragen sind nicht sinnvoll:

... [MQTT2_m2s:SummPower] < 1500 and [Jamie_IR_Heizung_Automatik_bei_ueber_1500Watt_Solar:"^on$"]

Da kann SummPower unter 1500 fallen und dennoch ist die Aussage falsch, falls Jamie_IR_Heizung_Automatik_bei_ueber_1500Watt_Solar gerade nicht triggert, weil es keine Zustandsabfrage ist, der Art:  [Jamie_IR_Heizung_Automatik_bei_ueber_1500Watt_Solar:state] eq "on"
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF