Hallo zusammen,
ich würde mich selbst jetzt nicht unbedingt noch als FHEM-Anfänger bezeichnen, allerdings finde ich, dass man die folgende Frage dennoch in diese Kategorie einordnen kann.
Bei allen get-Befehlen, wird immer ein Log-Eintrag mit dem Ergebnis angelegt. Bisher hat mich das nicht weiter gestört, da ich allerdings jetzt eine iButton-Abfrage (get owx devices) alle 5 Sekunden machen möchte (eine andere Möglichkeit, die iButtons in kleinen Zyklen mit firmata abzufragen scheint es zur Zeit nicht zu geben), wird das Logfile bei einem Abfrageinterval von 5 Sekunden in kurzer Zeit immens anwachsen. Kann man den Log-Eintrag irgendwie unterbinden? Ich habe danach schon hier im Forum gesucht und auch gegooglet, hab allerdings nichts gefunden.
Viele Grüße,
Blade
Zitat von: blade-of-fire am 18 Februar 2017, 17:24:09Bei allen get-Befehlen, wird immer ein Log-Eintrag mit dem Ergebnis angelegt.
Echt? Bei mir nicht. Zeig mal.
Gruß,
Thorsten
Also,
ich habe meine 5-sekündliche Abfrage mit folgendem at angelegt:
define iButtonAbfrage AT +*00:00:05 {
fhem("get OWio5 devices");
}
Das Logfile wird nun munter befüllt.
Hab eben nochmal geschaut, mein Global verbose steht auf 3.
2017.02.18 18:01:09 1: OWX: 1-Wire devices found on bus OWio5 (iButton_Katharina,iButton_Patrick)
2017.02.18 18:01:09 3: get OWio5 devices : OWX: 1-Wire devices found on bus OWio5
01.FCFA52180000 unknown iButton_Katharina
01.AAAAF5170000 unknown iButton_Patrick
2017.02.18 18:01:09 3: At.Read_iButtons: OWX: 1-Wire devices found on bus OWio5
01.FCFA52180000 unknown iButton_Katharina
01.AAAAF5170000 unknown iButton_Patrick
2017.02.18 18:01:14 1: OWX: 1-Wire devices found on bus OWio5 (iButton_Katharina,iButton_Patrick)
2017.02.18 18:01:14 3: get OWio5 devices : OWX: 1-Wire devices found on bus OWio5
01.FCFA52180000 unknown iButton_Katharina
01.AAAAF5170000 unknown iButton_Patrick
2017.02.18 18:01:14 3: At.Read_iButtons: OWX: 1-Wire devices found on bus OWio5
01.FCFA52180000 unknown iButton_Katharina
01.AAAAF5170000 unknown iButton_Patrick
2017.02.18 18:01:19 1: OWX: 1-Wire devices found on bus OWio5 (iButton_Katharina,iButton_Patrick)
2017.02.18 18:01:19 3: get OWio5 devices : OWX: 1-Wire devices found on bus OWio5
01.FCFA52180000 unknown iButton_Katharina
01.AAAAF5170000 unknown iButton_Patrick
2017.02.18 18:01:19 3: At.Read_iButtons: OWX: 1-Wire devices found on bus OWio5
01.FCFA52180000 unknown iButton_Katharina
01.AAAAF5170000 unknown iButton_Patrick
2017.02.18 18:01:24 1: OWX: 1-Wire devices found on bus OWio5 (iButton_Katharina,iButton_Patrick)
2017.02.18 18:01:24 3: get OWio5 devices : OWX: 1-Wire devices found on bus OWio5
01.FCFA52180000 unknown iButton_Katharina
01.AAAAF5170000 unknown iButton_Patrick
2017.02.18 18:01:24 3: At.Read_iButtons: OWX: 1-Wire devices found on bus OWio5
01.FCFA52180000 unknown iButton_Katharina
01.AAAAF5170000 unknown iButton_Patrick
2017.02.18 18:01:29 1: OWX: 1-Wire devices found on bus OWio5 (iButton_Katharina,iButton_Patrick)
2017.02.18 18:01:29 3: get OWio5 devices : OWX: 1-Wire devices found on bus OWio5
01.FCFA52180000 unknown iButton_Katharina
01.AAAAF5170000 unknown iButton_Patrick
2017.02.18 18:01:29 3: At.Read_iButtons: OWX: 1-Wire devices found on bus OWio5
01.FCFA52180000 unknown iButton_Katharina
01.AAAAF5170000 unknown iButton_Patrick
Ohne die Hintergründe des Moduls zu kennen... Setze verbose im Modul auf einen niedrigeren Wert...
Das hatte ich bereits probiert. Um sicher zu sein, habe ich es eben nochmal getestet. Die Einträge werden leider weiterhin geloggt.
fhem("get OWio5 devices",1);
Zitat von: betateilchen am 18 Februar 2017, 19:39:53
fhem("get OWio5 devices",1);
Den kannte ich jetzt auch noch nicht. Das steht auch nicht in irgendeiner Doku, oder? (Die fhem.pl lasse ich im Anfängerbereich nicht als Doku gelten.)
Außerdem: Laut commandref heißt verbose bei OWX immer noch loglevel. Vielleicht das mal ausprobieren.
Ansonsten vielleicht mal im zugehörigen Forenbereich nachfragen. Vielleicht gibt es dafür ja einen Grund...
Gruß,
Thorsten
Zitat von: Thorsten Pferdekaemper am 18 Februar 2017, 20:19:46
Den kannte ich jetzt auch noch nicht.
Da kann ich nix für.
Der Logeintrag von fhem() hat überhaupt nichts mit verbose oder dem Loglevel irgendeines Gerätes oder eines Modules zu tun, sondern einzig und allein mit der Funktion selbst, die standardmäßig ihren eigenen Logeintrag schreibt.
Es sei denn, man gibt ihr beim Aufruf den optionalen Parameter "silent" mit. Das steht auch schon ein paar Mal hier im Forum.
Danke für den Hinweis. Hat aber bei mir auch nichts gebracht. Es muss irgendetwas mit dem "get" befehl zu tun haben. Wenn ich mir ein Ereignis per "get" von meinem Google-Kalender hole legt er das zum Beispiel auch im Logfile ab.
Ich korrigiere mich, es hat sich doch etwas verändert.
Im folgenden Code kann man den Unterschied sehen zwischen fhem("get owx devices"); und fhem("get owx devices",1);
Nachdem setzen des Siltent-Parameters fällt eine Meldung weg.
2017.02.18 20:34:23 0: OWX: 1-Wire devices found on bus OWio5 ()
2017.02.18 20:34:23 3: get OWio5 devices : OWX: 1-Wire devices found on bus OWio5
2017.02.18 20:34:28 0: OWX: 1-Wire devices found on bus OWio5 ()
2017.02.18 20:34:28 3: get OWio5 devices : OWX: 1-Wire devices found on bus OWio5
2017.02.18 20:34:33 0: OWX: 1-Wire devices found on bus OWio5 ()
2017.02.18 20:34:33 3: get OWio5 devices : OWX: 1-Wire devices found on bus OWio5
2017.02.18 20:34:41 0: OWX: 1-Wire devices found on bus OWio5 ()
2017.02.18 20:34:46 0: OWX: 1-Wire devices found on bus OWio5 ()
2017.02.18 20:34:51 0: OWX: 1-Wire devices found on bus OWio5 ()
2017.02.18 20:34:56 0: OWX: 1-Wire devices found on bus OWio5 ()
Leider würde mir der verbleibende Eintrag dennoch das Logfile vollschreiben. Ich habe mittlerweile bei dem betreffenden AT verbose auf 0, sowie bei dem owx sowohl verbose, also auch loglevel auf 0.
Ok, die Meldung aus fhem() hast Du nun weg.
Die andere Meldung (im Loglevel 0) bekommst Du nicht weg, weil das vermutlich keine Logmeldung ist, sondern der Rückgabewert einer aufgerufenen Funktion. Da kann Dir nur der Modulmaintainer helfen.
Allerdings frage ich mich, ob dein Abfragen alle 5 Sekunden überhaupt der richtige Weg ist, oder ob es dafür nicht andere Lösungsansätze gibt.
Leider reagiert owx mit der ConfigurableFirmata sehr träge bei den iButtons. Ich möchte, dass sofort, oder zumindest nach wenigen Sekunden erkannt wird, ob der iButton dran hängt oder nicht.
Das Problem wurde in einem anderen Thread auch schon mal thematisiert, ich finde den Thread leider zur Zeit nicht. Dort wurde dann auch gesagt, dass man per AT den Get-Befehl auslösen soll. Ich finde den Weg selbst auch sehr umständlich.
Zitat von: betateilchen am 18 Februar 2017, 20:28:34
Der Logeintrag von fhem() hat überhaupt nichts mit verbose oder dem Loglevel irgendeines Gerätes oder eines Modules zu tun, sondern einzig und allein mit der Funktion selbst, die standardmäßig ihren eigenen Logeintrag schreibt.
Ach ja. Auch irgendwie klar. Vielleicht hätte ich doch den Wein nicht...
Zitat von: blade-of-fire am 18 Februar 2017, 21:25:57
Leider reagiert owx mit der ConfigurableFirmata sehr träge bei den iButtons. Ich möchte, dass sofort, oder zumindest nach wenigen Sekunden erkannt wird, ob der iButton dran hängt oder nicht.
Kannst Du mal kurz erläutern, wie das alles zusammenhängt? Polling scheint mir da auch nicht gerade so das wahre. Muss das so sein?
Vielleicht wäre da sowieso ein anderes Protokoll besser.
Gruß,
Thorsten
ZitatIch habe mittlerweile bei dem betreffenden AT verbose auf 0
Ich würde auch nicht das
at auf verbose 0 stellen, sondern eher das OWX-Device.....Von diesem kommt ja scheinbar die Meldung, und nicht vom at.
lg, Stefan
Das habe ich ja auch auf 0...
Zitat von: blade-of-fire am 18 Februar 2017, 20:38:53
...Ich habe mittlerweile bei dem betreffenden AT verbose auf 0, sowie bei dem owx sowohl verbose, also auch loglevel auf 0.
Zitat von: Thorsten Pferdekaemper am 18 Februar 2017, 23:00:56
Kannst Du mal kurz erläutern, wie das alles zusammenhängt? Polling scheint mir da auch nicht gerade so das wahre. Muss das so sein?
Vielleicht wäre da sowieso ein anderes Protokoll besser.
Es gibt natürlich Sketchs, die alle 250ms den One-Wire-Bus abfragen und dann sofort reagieren, aber da habe ich eben nicht die Kommunikation mit fhem, die ich ja haben will.
in der ConfigurableFirmata ist es leider so, dass man die Version 2.0.6 aufspielen muss, weil die Versionen danach seltsamerweise die iButtons gar nicht mehr erkennen. Wieso das so ist, kann ich leider auch nicht sagen und ich habe leider auch noch keine Antwort darauf bekommen.
In den Threads https://forum.fhem.de/index.php/topic,67196.0.html (https://forum.fhem.de/index.php/topic,67196.0.html) und https://forum.fhem.de/index.php/topic,59630.0.html (https://forum.fhem.de/index.php/topic,59630.0.html) wurde das auch schon diskutiert.
Viele Grüße,Blade
Hi,
also ich persönlich würde mir da ein HomebrewWired-Modul daraus machen... Aber das braucht natürlich die Homematic-Wired Infrastruktur.
Wenn Du nicht selbst den Firmata-Sketch "reparieren" kannst, dann würde ich das an Deiner Stelle mal in den "richtigen" Forenbereich verschieben. Da hättest Du eine bessere Chance. Das ist jetzt nicht mehr wirklich Anfängerkram.
Gruß,
Thorsten