Ich lasse ein Script über 2 Ereignisse von 2 Variablen antriggern und würde gerne im Script unterscheiden könne, von welcher
Variablen getriggert wurde. Klingt einfach, ist es bestimmt auch, aber nicht für mich
Hab jetzt 2 Stunden hinter mir, eventuell könnt ihr mich ja ein wenig „stupsen“
Das hier funktioniert nicht:
$_IPS['VARIABLE'] = 16664 /*[Entwicklungsbereich\MQTT Broker\MQTT Topic Root\Heizung grHalle ID1\Temperatur-Oben\Temperatur-Halle1-Oben]*/;
if ($_IPS['SENDER'] == $_IPS['VARIABLE']){
SetValueInteger(53305 /*[Entwicklungsbereich\MQTT Broker\Nodes\Heizung ID 1\Online Check\Online Check Temperatursensoren\Temperatursensoren\Counter Temperatur Oben]*/,0);
}
$_IPS['VARIABLE'] = 55724 /*[Entwicklungsbereich\MQTT Broker\MQTT Topic Root\Heizung grHalle ID1\Temperatur-Unten\Temperatur-Halle1-Unten]*/;
if ($_IPS['SENDER'] == $_IPS['VARIABLE']){
SetValueInteger(49685 /*[Entwicklungsbereich\MQTT Broker\Nodes\Heizung ID 1\Online Check\Online Check Temperatursensoren\Temperatursensoren\Counter Temperatur Unten]*/,0);
}
diese Version hatte ich auch schon ausprobiert, die hat auch nicht funktioniert.
Generell würde ich gerne folgendes machen:
EIN Script, ZWEI Ereignisse (auf variablenaktualisierung) von ZWEI Variablen (Temperaturfühler) antriggern (Dieser Teil steht :))
Jetzt hätte ich ganz grob gerne sowas:
Wenn Variable/Ereignis A ist Sender
„mache das“
Wenn Variable/Ereignis B ist Sender
„Mache jenes“
Wobei ich mir nicht sicher bin, ob das Wort „Variable“ hier richtig gewählt ist, da das Script ja über ein Ereignis, aber von einer Variablen getriggert, ausgelöst wird.
UI, jetzt muss mir noch jemand erklären, was ich gerade gemeint habe
Du hast ein Script, unterhalb sind Ereignisse die eine Variable auf veränderung, aktualisierung, bestimmte Werte oä prüfen ?
Sonst mach mal ein Bild vom Objektbaum an der Stelle.
Falls ja, sollte das so funktionieren wie Sascha es gezeigt hat.
Dein Script versteh ich überhaupt nicht. Du weist jeweils vor der if-Anweisung der Systemvariable selber einen Wert zu, das sieht absolut falsch aus.
Gruß
Julian
Edit: ich hab das ehrlich gesagt noch nicht so gemacht, aber laut Doku müsste es so gehen, mit $_IPS[‚VARIABLE‘] wie oben geschrieben.
Ich prüfe in Scripten wo ich auf verschiedene Sender reagiere meistens auf das Event.
Event ist also das Ereignis selbst, Variable die dazugehörende Variable. Solange man pro ereignis nur ganz Klassich auf eine Variable prüft und nicht noch mehr bedingungen hat dürfte es im Ergbnis egal sein welchen weg man wählt ? Ich kenn mich mit diesen neumodischen ereignissen nicht aus
Also ich machs so:
Event1 = ID des ereignisses unterhalb vom Script
Event2 = andere auslöse ID
Event1 = ID des ereignisses unterhalb vom Script
Event2 = andere auslöse ID
if(@$_IPS['EVENT'] == $Event1)
Hier steht das, was passieren soll bei Event1;
if(@$_IPS['EVENT'] == $IDEventkey3kurz)
Hier steht der andere Inhalt;
Was genau funktioniert denn an Sachas beispiel nicht ?
mit Case kannst du auch die Fallunterscheidung machen aber bei nur 2 verschiedenen ereignissen geht das mit „if“ genauso „gut“.
Dein Problem ist denke ich noch woanders.
Da immer noch keine Bilder: ich habs immer noch nicht ganz verstanden, sorry
Also die ZWEI ereignisse unterhalb deinem Script prüfen jeweils ob sich EINE variable aktualisiert hat ?
Für mein Verständnis: wäre es also egal ob du prüfst ob die Variable ausgelost hat oder das zugehörige Ereignis ?
Ich hatte mein Post oben mittlerweile Editiert gehabt während du geantwortet hast.
if($_IPS['VARIABLE'] == 55724){
//Mach was, wenn Variable A getriggert hat
}
if($_IPS['VARIABLE'] == 19886){
//Mach was, wenn Variable B getriggert hat
}[
Sorry wegen der Namen, da habe ich was verwechselt ersetze in meinen vorherigen Posts Sacha mit Hardlog.
Genau, Event ist das Ereignis selber, bzw. dessen ID, und Variable ist die im Ereignis eingestellte Variable. Es müsste beides gehen, ich kann mir gerade keinen Fall vorstellen, wo das eine mehr sinn als das andere macht, bzw. wo man unterschiedliche Ergebnisse erreichen kann und möchte, wirds aber sicher geben.