FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: Markus Bloch am 15 Juli 2014, 00:14:28

Titel: [PATCH]/Diskussion - log Kommando für FHEM Befehlszeile
Beitrag von: Markus Bloch am 15 Juli 2014, 00:14:28
Hallo zusammen,

im Rahmen der Weiterentwicklung von meinen Modulen hatte ich in letzter Zeit mit AnalyzeCommandChain zu tun und brauchte zum testen von Platz-Haltern mit EvalSpecials() eine einfache Möglichkeit den Befehl, der da gebildet wurde auf der FHEM Kommandozeile einfach nur ins Log zu schreiben.

Dabei viel mir auf, das ein einfaches log-Kommando für die FHEM Befehlszeile fehlt. Dabei denke ich währe das doch sehr interessant gerade für den neuen IF-Befehl mit dem man ja auf der FHEM Befehlszeile bleiben möchte und dort die Logik abbilden möchte. Ich denke da währe es interessant bei seinen ganzen Logik-Konstrukten durchaus mal die ein oder andere Log-Meldung zu haben, was die Logik da so anstellt.

Daher habe ich mal auf die schnelle einen log-Befehl zusammengeschustert. Ist nichts dolles, gibt halt nur die übergebenen Parameter im Log mit Loglevel 0 aus.

Ich weis nicht, ob sowas interessant währe und wie man das ganze sinnvoll verbessern, ergänzen und integrieren kann.

Ich stell es einfach mal hier rein und mal schauen was ihr so dazu sagt.

Viele Grüße

Markus
Titel: Antw:[PATCH]/Diskussion - log Kommando für FHEM Befehlszeile
Beitrag von: hexenmeister am 15 Juli 2014, 00:40:42
Moin!

So ein Befehl habe ich auch schon vermisst, war jedoch zu faul, selbst Hand anzulegen ;)
Also => ich finde es gut!
Schön wäre es noch, den LogLevel bestimmen zu können.

Grüße,

Alexander
Titel: Antw:[PATCH]/Diskussion - log Kommando für FHEM Befehlszeile
Beitrag von: rudolfkoenig am 15 Juli 2014, 07:55:17
Wenn ich es richtig verstehe, dann waeren die einzigen Nutzer die IF/DOIF Anwender.
In diesem Fall sollte das Befehl von diesem Modul implementiert werden, um perl-Anwender nicht zu verwirren. Ich will nicht Konstrukte wie
Zitat{
  fhem("log Hallo");
}
beobachten muessen.

Ein verbose Flag wuerde ich auch begruessen, und man kann hier auf Log3 zurueckgreifen, mit dem ausloesenden IF/DOIF als $hash.
Titel: Antw:[PATCH]/Diskussion - log Kommando für FHEM Befehlszeile
Beitrag von: hexenmeister am 15 Juli 2014, 09:48:40
Moin!
IF/DOIF verwende ich derzeit gar nicht, trotzdem wäre ein Log-Befehl machmal nützlich. Z.B. um Notifies zu testen oder ähnliches. Gut, ein {Log 3, "ABC"} tut es dort natürlich auch...
Titel: Antw:[PATCH]/Diskussion - log Kommando für FHEM Befehlszeile
Beitrag von: rudolfkoenig am 15 Juli 2014, 09:56:36
Mit so einem Log-Befehl koennte man nur testen, ob das notify-regexp funktioniert, das kann man aber schoener, indem man einen dummy setzt, da muss man nicht ins fhem-log schauen. Oder man setzt einen trigger ab auf das eigene notify ab, das sieht man im telnet/event-monitor. Sobald es etwas komplexer wird (== perl-code), verwendet man die Perl-Funktion Log.

Ich bin ja nicht unbedingt dagegen, will nur verstehen, wozu es gut sein soll, damit die Entwicklung nicht in die falsche Richtung laeuft.
Titel: Antw:[PATCH]/Diskussion - log Kommando für FHEM Befehlszeile
Beitrag von: hexenmeister am 15 Juli 2014, 10:01:57
Schon recht, unbedingt nötig ist es wohl nicht. Es gibt sicher viele andere möglichkeiten. Es ist ein wenig Geschmackssache. Ich schaue eben gerne ins Log. ;) Geht schnell und übersichtilich.

ZitatSobald es etwas komplexer wird (== perl-code), verwendet man die Perl-Funktion Log.
Klar.
Titel: Antw:[PATCH]/Diskussion - log Kommando für FHEM Befehlszeile
Beitrag von: Damian am 19 Juli 2014, 06:34:34
Zitat von: rudolfkoenig am 15 Juli 2014, 07:55:17
Wenn ich es richtig verstehe, dann waeren die einzigen Nutzer die IF/DOIF Anwender.
In diesem Fall sollte das Befehl von diesem Modul implementiert werden, um perl-Anwender nicht zu verwirren. Ich will nicht Konstrukte wie beobachten muessen.

Ein verbose Flag wuerde ich auch begruessen, und man kann hier auf Log3 zurueckgreifen, mit dem ausloesenden IF/DOIF als $hash.

Wenn ich FHEM-Log in IF/DOIF implementiere, welches nur innerhalb von IF/DOIF funktioniert, dann dauert es nicht lange, bis sich die ersten beschweren, dass dieser "FHEM-Befehl" woanders nicht funktioniert. Dann wird es irgendwo irgendwann nachgebaut und dann ist die Verwirrung perfekt.

Ein FHEM-Log hätte für IF/DOIF-User auch den Vorteil, dass man dann einfach z. B. Readings angeben kann:

IF (...) (LOG Die aktuelle Aussentemperatur beträgt [Aussen:temp])

Gruß

Damian