Ich habe einen alias wie folgt definiert:
defmod c_tokenon cmdalias tokenon AS deleteattr WEB csrfToken
attr c_tokenon genericDeviceType ignore
attr c_tokenon room System->cmdAlias
attr c_tokenon verbose 3
setstate c_tokenon defined
Leider funktioniert der nicht. Manuell in der Eingabeaufforderung mit
deleteattr WEB csrfToken
klappt alles. Bug?
Auf das Anlegen der Attribute hatte ich verzichtet und Dein cmdalias funktioniert hier einwandfrei und tut, was man erwartet.
Habe das probiert, funktioniert bei mir.
Das ganze ist nicht ohne Probleme, da sich ja im gleichen Moment das Web "ändert". Also geht es wirklich nicht oder siehst Du es bloß nicht?
Das ganze über ein zweites WEBIF probiert?
Zitat von: P.A.Trick am 16 Februar 2020, 22:08:00
Leider funktioniert der nicht.
Was funktioniert denn nicht? Was tust Du genau? Kommt eine Fehlemeldung?
Es sollen schon Leute versucht haben, einen cmdalias über den deviceNAME aufzurufen und nicht über den angegebenen cmdNAME...
So ich habe es gefunden. Ich hatte zuerst einen alias c_tokenoff definiert. Danach mit copy einen c_tokenon und diesen editiert. Es wird zwar dann der cmdalias richtig erzeugt, aber der c_tokenon hatte dieselbe Funktion wie c_tokenoff obwohl das FHEMWEB es korrekt angezeigt hat. Ein Neustart von FHEM hat das Problem gelöst. Ich vermute das innerhalb von FHEM irgendetwas gecached wird oder ähnliches.
Zitat von: betateilchen am 16 Februar 2020, 22:55:51
Es sollen schon Leute versucht haben, einen cmdalias über den deviceNAME aufzurufen und nicht über den angegebenen cmdNAME...
Ja das glaube ich dir, war aber hier nicht der Fall.
Zitat von: P.A.Trick am 16 Februar 2020, 22:57:54
Ich hatte zuerst einen alias c_tokenoff definiert. Danach mit copy einen c_tokenon und diesen editiert.
Wenn Du sowas machen möchtest, solltest Du das Editieren nach dem copy immer über die RAW definition durchführen und nicht nur im DEF selbst. Nur dann ist sichergestellt, dass alle benötigten INTERNALS aktualsiert werden (im cmdalias insbesondere NEWCMD)