Auslösendes Skript/Thread erkennen

Hallo in die Runde,

ich habe bei einem Schaltaktor (der über ein extern erstelltes Modul eingebunden ist) ein Problem, dass scheinbar willkürlich die Schaltvariable kurzfristig „flapped“. D.h. wenn der normalzustand „ein=1“ ist, springt die Variable kurz auf „aus=0“ um beim nächsten Telegramm wieder auf „ein“ umzuspringen.

Das sieht dann so aus:


TXT: 03.03.2019 13:02:35.00 | EseraBinaerAusgangDual | DataPoint:1 | Value: 1
HEX: 03.03.2019 13:02:35.00 | EseraBinaerAusgangDual | 44 61 74 61 50 6F 69 6E 74 3A 31 20 7C 20 56 61 6C 75 65 3A 20 31 
TXT: 03.03.2019 13:02:35.00 | EseraBinaerAusgangDual | DataPoint:2 | Value: 0
HEX: 03.03.2019 13:02:35.00 | EseraBinaerAusgangDual | 44 61 74 61 50 6F 69 6E 74 3A 32 20 7C 20 56 61 6C 75 65 3A 20 30 
TXT: 03.03.2019 13:02:40.00 | EseraBinaerAusgangDual | DataPoint:1 | Value: 0
HEX: 03.03.2019 13:02:40.00 | EseraBinaerAusgangDual | 44 61 74 61 50 6F 69 6E 74 3A 31 20 7C 20 56 61 6C 75 65 3A 20 30 
TXT: 03.03.2019 13:02:40.00 | EseraBinaerAusgangDual | DataPoint:2 | Value: 0
HEX: 03.03.2019 13:02:40.00 | EseraBinaerAusgangDual | 44 61 74 61 50 6F 69 6E 74 3A 32 20 7C 20 56 61 6C 75 65 3A 20 30 
TXT: 03.03.2019 13:02:40.00 | EseraBinaerAusgangDual | DataPoint:1 | Value: 1

DataPoint:2 (zweiter Ausgang des gleichen Aktors) bleibt immer stabil, dort gibt es den flap nicht.

Habe mir schon einen Wolf gesucht, aber ich finde nicht, was diesen flap auslöst. Beim 1-Wire Splitter kommt der „flap“ auch nicht an, passiert rein innerhalb von IPS. Nach einem Neustart von IPS kommt der flap erst mal eine ganze zeitlang nicht (mehrere Stunden) bis er dann plötzlich kommt und immer öfter, und häufig in einer Serie von 2 oder mehr flaps. Als würde irgendwie was „überlaufen“.

Gibt es irgendwie eine Möglichkeit - z.B. durch Code im Modulcode oder in IPS - festzustellen, was diese Änderung getriggert hat?

Klar - du kannst im passenden ESERA Device Modul mehr Debug Informationen rausgeben, z.B. mit dem Datenpaket, worauf diese Änderung ausgeführt wird. Vielleicht greift z.B. der Receive Filter nicht korrekt. Damit würdest du dies erkennen können.

paresy

Ok, gibt es einen „Debug-Schalter“? Oder meinst Du das hier:


void SendDebug (string [i]$Meldungsname[/i], string [i]$Daten[/i], integer [i]$Format[/i])

Ich meine SendDebug. Du musst halt das Modul bei dir entsprechend anpassen und SendDebug dort einbauen.

paresy

Wohin gibt SendDebug denn die Daten aus?

Doku sagt nur:

Gibt die Debugmeldung Daten unter dem Meldungsname Meldungsname und dem Format Format aus.

aber nicht wohin :slight_smile: Ich vernute Modul Debug Fenster?

SendDebug ist schon im Modul drin und daraus habe ich ja den dump generiert, der mir ja genau zeigt, dass der $data->Value „umkippt“


$data = json_decode($JSONString);
        $this->SendDebug("EseraBinaerAusgangDual", "DataPoint:" . $data->DataPoint . " | Value: " . $data->Value, 0);

Bin mir jetzt nicht sicher an welcher Stelle ich den debug setzen müsste.

Ich vermute, Modul Debug Fenster?

Genau so isses.