FHEM Forum

FHEM => Sonstiges => Thema gestartet von: HomeAuto_User am 02 Dezember 2020, 18:17:22

Titel: 98_help.pm - fehlerhaftes Regex schließt Dokumentation bzw. commandref aus
Beitrag von: HomeAuto_User am 02 Dezember 2020, 18:17:22
Hallo betateilchen,

ich habe mir mal dein Modul angesehen weil ich auf die Suche gegangen bin, wieso bei bisher einem Modul 10_IT.pm die Commandref nicht angezeigt wird in einem Device nachdem man auf "Device specific help" klickt.
Da erhält man nur Internal command: it

Der Fehler wird hier liegen in Zeile 44.
if($cmds{help}{InternalCmds} !~ m/$mod\,/) {

Du möchtest bestimmt prüfen auf bestimmte Werte, welche Namen ein Modul besitzen darf bzw. was dort nicht zutreffen darf. oder so ähnlich...
Da aber dein gebasteltes Regex auch bei dem Wert it in quit, zutrifft, erfolgt keine Ausgabe der Hilfe.

Hilfsausgaben zur Verdeutlichung:
2020.12.02 11:37:13.035 1: 98_help: IT
2020.12.02 11:37:13.039 1: 98_help: it
2020.12.02 11:37:13.039 1: 98_help: intro,command,devspec,attributes,attr,cancel,define,defmod,delete,deleteattr,deletereading,displayattr,get,include,inform,list,modify,quit,reload,rename,rereadcfg,save,set,setdefaultattr,setreading,setstate,setstate,show,shutdown,sleep,trigger,commands,global,perl,


Sobald du nun dein Regex ändern würdest in
if($cmds{help}{InternalCmds} !~ m/(^|\,)$mod\,/) {
somit sollte deine Bedinung weiterhin erfüllt sein und auch die Commandref wird dann richtig angezeigt weil it nicht mehr auf quit, gematched wird.

Bitte schau es dir mal an und würdest du dies einpflegen?

LG Marco
Titel: Antw:98_help.pm - fehlerhaftes Regex schließt Dokumentation bzw. commandref aus
Beitrag von: betateilchen am 02 Dezember 2020, 18:58:49
Danke für den Hinweis, das habe ich nun mal so eingebaut und bin gespannt, ob es irgendwelche Nebeneffekte gibt :)