[PATCH]/Diskussion - log Kommando für FHEM Befehlszeile

Begonnen von Markus Bloch, 15 Juli 2014, 00:14:28

Vorheriges Thema - Nächstes Thema

Markus Bloch

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
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

hexenmeister

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
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

rudolfkoenig

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.

hexenmeister

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...
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

rudolfkoenig

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.

hexenmeister

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.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF