Ereignis ändern, weitere Bedingungen, BedingungsID

Hallo!

Ich füge mal ein Bildchen ein. Ich habe ein Ereignis mit zusätzlichen, also erweiterten (Time-) Bedingungen.
Diese möchte ich aus dem Script heraus ändern können. Ich finde dazu diesen Befehl: „IPS_SetEventConditionTimeRule“.

Da wird gefragt nach der „BedingungsID“. Die „EreignisID“ ist ja klar, aber wo steht die „BedingungsID“?

Steht hier:
IPS_SetEventCondition — IP-Symcon :: Automatisierungssoftware

Du kannst die per Script noch verschachteln und dann wieder in ÜbergeordneteID angeben.
Die Console zeigt immer nur BedingungsID 0 an, soweit ich weiß.
Michael

Ich steh voll auf dem Schlauch. Das einzig klare für mich ist die „$EreignisID“.

Egal ob ich mir die Dokumentation von „IPS_SetEventCondition“ oder „IPS_SetEventConditionTimeRule“ durchlese…
Ein Licht geht mir leider nicht auf.

Mir ist auch der Unterschied zwischen „$BedingungsID“ und „$RegelID“ nicht klar.
Am besten spiele ich mal das Beispiel der Doku durch. Vielleicht geht dann ein Licht auf :frowning:

Du erzeugt zuerst eine Bedingung (mit IPS_SetEventCondition), die BedingungsID musst du mit angeben, die erste ist immer 0.
Und der Bedingung werden dann Regeln zugeordnet mit IPS_SetEventConditionVariableRule
Somit ist hier die BedingungsID wieder anzugeben ( 0 ) sowie eine RegelID (beginnt vermutlich auch mit 0 ).

Was du in der Konsole siehst und auch anlegen kannst, ist nur die BedingungsID 0 und dann alle ihre enthaltenen Regeln.
Ansonsten schau dir die Rückgabe von IPS_GetEvent an.
Michael

Michael hat es schon korrekt erklärt - Schau dir die Rückgabe von IPS_GetEvent mal an. Ich denke, dass wirst du sehen was wir meinen :slight_smile:

IPS_GetEvent — IP-Symcon :: Automatisierungssoftware

paresy

Okay. Ich vermute ich weiß nun was was ist. Aber stimmt das so? … In dem hier nun eingefügten (Bild-2) von mir, erkennt man die 5-stellige ErreignisID, die 2 TimeRules und die BedingungsID zu der die 2 Rules gehören.

Aber was ich noch nicht verstehe ist, warum man die BedingungsID überhaupt angeben muss, weil die Time-Conditions eh nur zu diesem Ereignis gehören können. Ich meine, man kann mehrere Rules zu genau einer einzigen Bedingung des Ereignisses erstellen (siehe Bild-1). oder?

Gut, wenn ich das aber jetzt richtig erkannt habe (?), dann ist es ja kein Problem mehr. Aber wäre es nicht sinnvoll die ID’s bei den Rules im Dialogfenster anzeigen zu lassen? Dann bräuchte ich nicht erst Var_dump zu machen um diese zu erhalten.

Lieb Grüß, Jürgen.

aufloesung_1.png

Die GUI ist ja nicht dafür gedacht dir beim Entwicklen zu helfen, sondern Laien eine simple Einstellung zu ermöglichen :slight_smile:

Du hast es richtig erfasst. Aber die 0 ist als BedingungID ist wichtig, da du per Code verschachtelte Bedingungen bauen kannst, die dann andere IDs haben. (Die GUI kann das nicht!)

paresy

Jetzt ist es auch für mich vollkommen logisch.

Danke für Deine/Eure Geduld :loveips: