VISU_PostNotificationEx verindert das setzten eines Status im Frontend

Hallo,
bei der Programmierung eines Moduls ist mir ein nicht erklärbares Verhalten aufgefallen,
wenn ich mir meinen Code so anschaue, sollte hier alles korrekt sein.

Infos zum Modul bzw. zum Verhalten:
Beim Überschreiten eines Grenzwertes für die Luftfeuchtigkeit, wird der Status gesetzt und auch gleichzeitig eine Push Nachricht mit einer Info dazu an den User geschickt.

Die Push-Nachricht kann deaktiviert und aktiviert werden.
Wenn keine Push-Nachricht gesendet wird funktioniert alle ohne Probleme.
Sobald die Push-Nachricht aktiviert ist tritt das Problem auf.

Meine Erwartung bzw. wie ich es mir Vorstelle:

  • Der Slider für „Grenzwert“ wird verschoben, anschließend findet die Prüfung statt = neuer Sliderwert wird gesetzt im Frontend
  • Danach kommt die Abarbeitung zum feststellen + setzten des Status: luftfeuchtigkeit();
  • Als nächstes kommt das senden der Nachricht: feuchtigkeitsmeldung()

Da das ganze nacheinander passiert, würde ich nicht erwarten das die Nachricht keinen Einfluss hat. Ihr könnte sehen, das sich der Wert der Status-Variablen setzt wie es erwartet wird nur das verschieben des Sliders hängt bzw. dieser verschiebt sich nicht, erst nach einem zweiten Klick.
Zur Verdeutlichung habe ich das ganze in einem Video nachgestellt.

2024-07-16 03-37-08.mkv (961,3 KB)

Der entsprechende Code dazu:

    public function RequestAction($Ident, $Value) {
        switch ($Ident) {
            case "grenzwert":
                $this->SetValue($Ident, $Value);
                $this->luftfeuchtigkeit();
                $this->feuchtigkeitsmeldung();
                break;
            case "meldeverzoegerung":
                $this->SetValue($Ident, $Value);
                $this->feuchtigkeitsmeldung();
                break;
            default:
                throw new Exception("Invalid Ident");
        }
    }

    
    public function luftfeuchtigkeit() {
        // Wenn der Grenzwert oder die Luftfeuchtigkeit aktualisiert wird, eine Prüfung durchführen
        $ist_luftfeuchtigkeit       = GetValue($this->ReadPropertyInteger("ID-Luftfeuchtigkeit"));
        $grenzwert                  = GetValue($this->GetIDForIdent("grenzwert"));
        if ($ist_luftfeuchtigkeit > $grenzwert) {
            // Status setzen + Feuchtigkeitsmeldung senden
            SetValue($this->GetIDForIdent("status_lueften"), true);
        } else {
            // Status zurücksetzen
            SetValue($this->GetIDForIdent("status_lueften"), false);
            $this->feuchtigkeitsmeldung();
        }
    }

 
    public function feuchtigkeitsmeldung() {
    // Senden einer Push-Nachricht, wenn der Grenzwert über die Zeit der Meldeverzögerung überschritten wird
    $ident  = $this->GetIDForIdent("status_lueften");
    $status = $this->GetValue("status_lueften");
    $meldeverzoegerung = GetValue($this->GetIDForIdent("meldeverzoegerung"));

    $content    = IPS_GetVariable($ident);
    $result     = time() - $content['VariableChanged'];
    $minuten    = $result / 60;
    $minuten    = $minuten + 1/60;

    $pushID     = $this->ReadPropertyInteger("ID-Webfront");
    $pushstatus = $this->ReadPropertyBoolean("ID-Push");
    $bufferdata = $this->GetBuffer("PushNachricht");

    if ($status == true) {
        if ($minuten > $meldeverzoegerung && $pushstatus == true && $bufferdata != "Sent") {
            VISU_PostNotificationEx($pushID, "Luftfeuchtigkeit!", "Die Luftfeuchtigkeit ist zu hoch!", "Alert", "alarm", 0);
            $this->SetBuffer("PushNachricht", "Sent");
        }
    }
    else {
        $this->SetBuffer("PushNachricht", "Reset");
    }
    }

Ist $pushID wirklich eine Instanz vom Typ Kachel Visualisierung? Und warum ist Target bei VISU_PostNotificationEx auf 0?
Ist das Root Objekt bei dir in der Visu verfügbar?
Wäre hier nicht z.b. die Instanz von deinem Modul sinnvoll?
Michael