Modale Textbox aus DOIF möglich?

Begonnen von phys1, 06 Mai 2026, 19:11:17

Vorheriges Thema - Nächstes Thema

phys1

Hallo,

ist es möglich aus einem DOIF im Perl-Modus heraus eine modale Textbox anzuzeigen? Die Box soll erscheinen, wenn der Nutzer per set-Befehl einen bestimmten Block ausführen lässt. Die dafür vorgesehene Methode FW_directNotify("#FHEMWEB:WEB","FW_okDialog('Mein Text')","") funktioniert jedenfalls nicht, weder im Block selbst (mit vorangestellten ::) noch über ein userReading, das ja auch Perl Code ausführen kann. Das 98_DOIF.pm hat Version 2026-04-27.

In einem dummy Device hingegen geht es, d.h. dort ruft FW_directNotify / FW_okDialog in einem userReading tatsächlich eine modale Textbox auf.
Grüße

Damian

Dann zeig mal das Beispiel, was du im DOIF erstellt hast.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

phys1

Hallo,

Version 1 im Block:
define Test DOIF action {\
 ::FW_directNotify("#FHEMWEB:WEB","FW_okDialog('Meine Nachricht')","");;\
}
Mit set Test action wird der Block ausgeführt, aber es erscheint keine Textbox (und keine Fehlermeldung).

Version 2 mit userReading:
define Test2 DOIF action {\
 set_Reading("TestStr","Mein Trigger",1);;\
}
attr Test2 userReadings show:TestStr.* {\
FW_directNotify("#FHEMWEB:WEB","FW_okDialog('Mein Test')","");;\
return "Hat getriggert";;}

Warum geht das aus dem DOIF nicht?

Viele Grüße

Hier wird das user Reading "show" auf "Hat getriggert" gesetzt, aber es erscheint keine Textbox (und keine Fehlermeldung).

Mit einem dummy klappt es zumindest beim zweiten Mal, wenn man Text bei TestStr eingibt:
define Test3 dummy
attr Test3 readingList TestStr show
attr Test3 setList TestStr
attr Test3 userReadings show:TestStr.* {\
my $msg = ReadingsVal($NAME,"TestStr","?");;\
FW_directNotify("#FHEMWEB:WEB","FW_okDialog('$msg')","");;\
}

Damian

Bei mir funktioniert es ohne Probleme.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF