Fehler nach Set-Command. Verrücktes Verhalten.

Begonnen von felix.steinbeis, 09 Dezember 2015, 21:53:14

Vorheriges Thema - Nächstes Thema

felix.steinbeis

Hallo zusammen,

ich habe folgendes Phänomen bzw. folgenden Bug gefunden:

Wenn ich ein "Set xyz test" eingebe (großes S bei Set), passiert nichts (xyz muss auch nicht existieren). Der Befehl wird scheinbar nicht ausgeführt und es kommt auch keine Fehlermeldung.
Gebe ich danach ein "Set abc test" ein ist das Verhalten identisch zu dem "Set" davor. Ok, soweit auch logisch.

Aber jetzt kommts:
Ich habe ein paar notifys, die mir jeweils einen Timer (at) anlegen. Immer wenn jetzt ein notify ausgeführt wird, und ich einen Timer definiere (define 3.dg.treppe.bewegungsmelder.at at +00:00:32 setreading 3.dg.treppe.bewegungsmelder state motion_off), habe ich folgenden Log-Eintrag:

3.dg.treppe.bewegungsmelder.at: unknown attribute xyz. Type 'attr 3.dg.treppe.bewegungsmelder.at ?' for a detailed list.
3.dg.treppe.bewegungsmelder.at: unknown attribute abc. Type 'attr 3.dg.treppe.bewegungsmelder.at ?' for a detailed list.

Der Timer funktioniert trotzdem. Immer wenn ich jetzt einen Timer definiere, kommen die beiden Fehlermeldungen

Was ist da los. Ohne "shutdown restart" bekomme ich die Fehlermeldungen nicht mehr weg.

Viele Grüße
Felix

rudolfkoenig

Die Loesung des Reatsels sieht man, wenn man "attr global verbose 5" verwendet:
2015.12.10 11:02:47.374 5: Cmd: >Set xyz test<
2015.12.10 11:02:47.374 5: Set => setdefaultattr

Da Set nicht existiert, geht fhem von einer Abkuerzung aus, und sucht nach Befehlen, die laenger als "Set" sind, und deren Praefix (Grossschreibung ignoriert) mit Set anfaengt.

Btw, es wird Zeit setdefaultattr als deprecated zu markieren, ich gehe davon aus, dass es nicht verwendet wird. Stoerte bisher nur selten.

Benni

Hallo Rudi,

es ist aber eigentlich auch nicht schön, wenn FHEM sowas stillschweigend macht, ohne ein feedback zu geben.
Abkürzungen können ja sehr angenehm sein :) , aber die sollte man sich m.E. doch explizit per cmdalias selbst anlegen.

Gruß Benni.

rudolfkoenig


betateilchen

Ich würde setdefaultattr ehrlich vermissen. Gerade bei der Neuanlage von mehrkanaligen Homematic devices ist das sehr hilfreich, wenn man plötzlich 10 Kanäle als eigene devices konfigurieren muss.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig


betateilchen

Danke.

Vermutlich haben wir beide was gemeinsam: Ich bin einer der wenigen, die mit setdefaultattr arbeiten und Du dürftest einer der wenigen sein, der die Kurzformen der Befehle benutzt  8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Benni

Ich habe übrigens nichts gegen setdefaultattr, ganz im Gegenteil. Und jetzt, da ich das mit den Kurzbefehlen weiß, werde ich sie bestimmt auch nutzen, schließlich bin ich ja auch von Haus aus faul ;)

Es ging mir lediglich um das auf den ersten Blick willkürliche verhalten, gerade im ursprünglichen Beispiel dieses Threads, schließlich gäbe es bei "Set" ja durch aus mehrere mögliche alternativen, nämlich "set", "setdefaultattr", "setreading" und "setstate".