Baxxy hat geschrieben: ↑28.08.2024, 18:51
Die These hatte ich ja auch schon aufgestellt.
Die hinkt aber etwas denn nach meinen Tests wird korrekterweise 2x getriggert und jeweils beide Trigger (Temp/Hum) entsprechen dann $src$ und werden hier auf dem Testsystem bisher "Aussetzerfrei" ins SYSLOG geloggt.
Ich konnte also weiterhin nicht bestimmen wer/wie/was/wo verschluckt.
Also ich hatte meine Scripte nach meiner Erinnerung aus einem ähnlichen Grund eben so wie beschrieben umgebaut. Ist aber lange her. Und weil es funktionierte auch nicht mehr verändert. Deswegen habe ich auch nie weiter geforscht, ob das gerätespezifisch war.
Wenn allerdings 2 Mal nahezu zeitgleich getriggert wird, wäre noch die Frage offen, wie sich die Variable $src$ verhält. In Deinem Script wird sie zweimal benutzt. Es wäre demnach mal einen Test wert, die Variable $src$ erst einmal an eine Scriptvariable zu übergeben und dann mit der Scriptvariable weiterzuarbeiten. Und dann sehen, ob der Effekt immer noch auftritt.
Die Variable $src$ sollte nach meinem Gefühl Script spezifisch sein. Wenn die CCU die Variable aber global behandelt, könnte sie während des Ablaufs des Scripts quasi vom zweiten Trigger überschrieben werden.
Ich hab das nie geprüft, bei mir ist das eher eine Angewohnheit aus anderen Programmiersprachen, wo es explizit eine Variablenübergabe "by Value" oder "by Referenz" gibt, in andern Worten, ob ein Wert oder ein Pointer übergeben wird. Übergibt man die Variable aber sofort an eine Script-spezifische Variable, dann erzwingt man damit quasi eine Übergabe eines Wertes, und die CCU kann anschließend damit machen, was sie will.