Hallo zusammen,
ich habe ein mir nicht erklärbares Phänomen und hoffe hier auf Hilfe.
Folgendes DOIF ist definiert:
DOIF ([Bewegungsmelder1:brightness] > [rollosteuerung:beschattung_brightness_grenzwert] and # Bestimmter Helligkeitswert überschritten?
[Sensor.Wohnzimmer:temperature] > [rollosteuerung:beschattung_temp_grenzwert] and # Wohnzimmertemperatur über einem Schwellwert
[str_handy] eq "absent" and # Niemand mehr daheim?
[EG.rollo.seite] eq "oben" and # Sind die Rollos ganz oben?
[rollosteuerung:beschattung] eq "an") # Ist die Automatik an?
(set EG.rollo.seite 30, setreading EG.rollo.seite_beschattung beschattung aktiv, set telebot message Beschattung: Rollos runter) # Wenn alles erfüllt ist, wird beschattet
DOELSEIF (([Bewegungsmelder1:brightness] < [rollosteuerung:beschattung_brightness_grenzwert] or
[Sensor.Wohnzimmer:temperature] < [rollosteuerung:beschattung_temp_grenzwert]) and
[str_handy] eq "absent" and [EG.rollo.seite_beschattung:beschattung] eq "aktiv")
(set EG.rollo.seite 100, setreading EG.rollo.seite_beschattung beschattung inaktiv)
DOELSEIF ([str_handy] eq "present" and
[EG.rollo.seite_beschattung:beschattung] eq "aktiv")
(set EG.rollo.seite 100, setreading EG.rollo.seite_beschattung beschattung inaktiv)
Mein Problem ist aktuell die erste DOIF-Bedingung, da die Beschattung teilweise einsetzt, obwohl jemand zuhause ist. Wenn das passiert, führe ich im struct "str_handy" einen Statusrequest durch und die Rollos gehen wie von Zauberhand nach oben. Im Struct selber ändert sich nichts, der Status ist vor dem Statusrequest und danach auf "present".
Hier ein List vom struct:
Internals:
ATTR str_handy
CHANGEDCNT 239
DEF str_handy ????_presence ????_presence ????_presence ????_presence ????_presence
NAME str_handy
NR 72
NTFY_ORDER 50-str_handy
STATE present
TYPE structure
Content:
????_presence absent
????_presence present
????_presence absent
????_presence absent
????_presence absent
Readings:
2017-07-06 14:03:08 LastDevice ????_presence
2017-07-06 14:03:08 LastDevice_Abs ????_presence
2017-07-06 14:03:08 state present
Attributes:
alias Alle Handys
clientstate_behavior relative
clientstate_priority present absent
devStateIcon present:rc_GREEN absent:rc_RED
evaluateSetResult 1
event-on-change-reading .*
group Anwesend
room Übersicht
(Die Namen habe ich unkenntlich gemacht :))
Den Parameter evaluateSetResult habe ich testweise auf 1 und 0 gesetzt. Das hat keinen Unterschied gemacht.
Kann mir hier jemand auf die Sprünge helfen?
Vielen Dank!
Interessant wäre ein list kurz nach der Beschatungsfahrt obwohl jemand zu Hause ist.
Sobald das der Fall ist, werde ich den List hier posten.
Hi,
klingt danach, dass Deine logische Abfolge nicht stimmt und Du einen erneuten Event auslösen musst.
setreading EG.rollo.seite_beschattung beschattung ... wird in den Zweigen überall gesetzt und abgefragt, dass passt eventuell nicht wenn der erste present kommt.
DOIF arbeitet alle Zweige von vorn nach hinten durch wenn ein Event von einer Teilbedingung kommt. Wenn ein Zweig stimmt ist für diesen Event erstmal Schluss. So habe ich das zumindest verstanden, kann sein es stimmt nicht.
Gruß Otto
Zitat von: Otto123 am 06 Juli 2017, 14:53:44
Hi,
klingt danach, dass Deine logische Abfolge nicht stimmt und Du einen erneuten Event auslösen musst.
setreading EG.rollo.seite_beschattung beschattung ... wird in den Zweigen überall gesetzt und abgefragt, dass passt eventuell nicht wenn der erste present kommt.
DOIF arbeitet alle Zweige von vorn nach hinten durch wenn ein Event von einer Teilbedingung kommt. Wenn ein Zweig stimmt ist für diesen Event erstmal Schluss. So habe ich das zumindest verstanden, kann sein es stimmt nicht.
Gruß Otto
Macht auch rein logisch keinen Sinn darauf zu triggern. Ich würde hier lediglich eine Abfrage, also ? davor, machen.
Zitat von: CoolTux am 06 Juli 2017, 14:57:25
Macht auch rein logisch keinen Sinn darauf zu triggern. Ich würde hier lediglich eine Abfrage, also ? davor, machen.
Danke für den Hinweis, du hast natürlich Recht.
Aber mein Problem liegt ja vermutlich eher beim structure, weil die Bedingung ja eigentlich nicht wahr sein dürfte. Ich hoffe jetzt das passiert bald wieder, damit ich den List hier posten kann. Manchmal läuft es aber auch eine ganze Woche fehlerfrei...