ich habe diesen Aktor in diversen Anschaltungen im Einsatz.
Hier geht es um die Auswertung von Fehlerfällen am Aquarium. Der Aktor schaltet die Pumpe und den Stabheizer sowie das Thermometer im Aquarium (Selbstbau Arduino)
folgendes Programm soll dabei den Fehlerfall alarmieren:
im DANN Fall wird, angelehnt an alchys Auslöserscript (viewtopic.php?f=31&t=35686)
Code: Alles auswählen
! $scrc$ liefert, welches Objekt das Programm ausgelöst hat
var ausloeser = dom.GetObject("$src$");
var name;
var dp;
var wert;
!Wenn der Auslöser ein Gerätewert ist:
if(ausloeser.TypeName() == "HSSDP") {
var chan = dom.GetObject(ausloeser.Channel());
var device = dom.GetObject(chan.Device());
name = dom.GetObject(device.Name());
dp = ausloeser.HssType();
wert = ausloeser.Value();
}
! wenn der Auslöser ein Variablenwert ist und kein Gerätewert:
if(ausloeser.TypeName() == "VARDP") {
name = ausloeser;
dp = "";
wert = ausloeser.Value().ToString(2);
}
if (ausloeser) {
string MESSAGE = "ausgelöst von " # name # "." # dp# " mit Wert " # wert;
! Pushover
!.....
Nun schalte ich über Kanal 2 manuell den Aktor aus.
Ergebnis: 2x Pushover:
Die erste Meldung "ausgelöst von AQ1-Pumpe.STATE mit Wert false"
2. Meldung "ausgelöst von AQ1-Pumpe.POWER mit Wert 0.000000"
So weit so gut. Zufriedenstellend.
Nun schalte ich den Aktor manuell über Kanal 2 wieder an.
Wieder 2x Pushover:
1.Meldung: "ausgelöst von AQ1-Pumpe.STATE mit Wert true"
2.Meldung: "ausgelöst von AQ1-Pumpe.POWER mit Wert 339.900000"
Warum? DANN dürfte doch überhaupt nicht ausgelöst werden, da keine einzige Bedingung erfüllt ist?
Hat jemand eine Ahnung, warm sich das Programm so verhält?