Modul Yamaha AVR schreibt LOG Datei voll

Begonnen von herman, 07 Januar 2013, 11:55:39

Vorheriges Thema - Nächstes Thema

herman

Hallo,

ich nutze sehr zufrieden das Modul yahmaha_avr zur Steuerung meines Verstärkers.

Die gesamte Hifi-Anlage hängt hinter einer schaltbaren Steckdose.

Das Log läuft voll wenn die Steckdose aus ist und somit der Verstärker nicht erreichbar.

2013.01.07 11:36:02 3: YAMAHA_AVR: could not execute command on device WZ_AVR
2013.01.07 11:36:35 1: CustomGetFileFromURL http://192.168.3.6/YamahaRemoteControl/ctrl: Can't connect to http://192.168.3.6:80

Haltet Ihr es für sinnvoll, den Anwendungsfall vorzusehen? Da ich oft lange nicht zu Hause bin, möchte ich den Standby-Modus meiden.
Grundsätzlich ist aber auch richtig zu loggen wenn der Verstärker nicht erreichbar ist. Vielleicht könnten wiederholte Log-Meldungen verhindert werden.

Grüße,
Merhan

Markus Bloch

Hallo Merhan,

ja das klingt sinnvoll. Werde ich mal in Angriff nehmen ;-)

Viele Grüße

Markus Bloch
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Markus Bloch

Die erste Zeile stammt auch aus dem Modul YAMAHA_AVR, die zweite Zeile von dem FHEM internen HTTP-Modul, da muss ich mich mit den anderen Entwicklern erstmal kurz schliesen, wie man das am besten handeln sollte. Ich werde dir aber Bescheid geben, sobald ich was habe.

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)

herman

Hallo Markus,

vielen Dank für Deine schnelle Antwort.

Ich habe mal als temporäre Lösung in der Funktion YAHMAHA_AVR_SendCommand eine Abfrage eingebaut, die den Zustand meiner Steckdose überprüft und nicht versucht das Kommando zu versenden, wenn die Steckdose nicht an ist.

Als allgemeine Lösungen fallen mir drei Möglichkeiten ein:

Entweder die Entwickler erweitern die GetFileFromURL Funktion mit einen Parameter um das loggen zu unterbinden (gibt es eigentlich in perl optionale Parameter mit Standardwerten?) oder
Du führt einen Idle Mode ein, indem das Modul nicht aktiv ist. Dieser könnte dann z.B. mit dem On Befehl automatisch aktiviert werden.
Ich finde die Abfrage mit der Steckdose gar nicht so schlecht. Vielleicht könnte man das auch als Attribut einführen und wenn eine Steckdose gesetzt ist, dann wird mein o.g. Ansatz verwendet.

Viele Grüße,
Merhan

Markus Bloch

Hallo Merhan,

ZitatEntweder die Entwickler erweitern die GetFileFromURL Funktion mit einen Parameter um das loggen zu unterbinden (gibt es eigentlich in perl optionale Parameter mit Standardwerten?)

Da bin ich gerade drann. Siehe Thread Link dazu ;-)

ZitatDu führt einen Idle Mode ein, indem das Modul nicht aktiv ist. Dieser könnte dann z.B. mit dem On Befehl automatisch aktiviert werden.

Ein Idle Modus in dem das Modul nicht aktiv ist, währe fatal, da so Statusänderungen des AV-Receivers nicht mehr abgefragt werden und das Device sozusagen "tot" währe, bis jemand in FHEM auf "on" drückt. Dies währe nicht gut, da ich z.B. bei einigen meiner Szenarios darauf prüfe ob der AV-Receiver an ist und wenn ja wie laut er gerade ist usw....

Ich habe im SVN gerade folgende Änderungen eingebracht. Sobald der AV-Receiver auf einmal nicht mehr antwortet, gibt YAMAHA_AVR dies als Fehlermeldung einmalig aus. Dannach sagt es nichts mehr, solange bis der AV-Receiver wieder erfolgreich abgefragt wurde ("device ... reappeared").

Aktuell kommen da aber eben nachwievor noch die Meldungen von GetFileFromURL(). Ist das Device nicht mehr erreichbar, dann sollen entsprechende Logmeldungen mit einem "silent"-Switch unterdrückt werden.

Sobald wir da eine entsprechende Lösung haben würde ich das dann nachziehen. So sind es nur noch halb soviele Meldungen pro Tag ;-)

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)

Markus Bloch

Habe nun alles soweit fertig eingebracht.

Bitte für morgen mal ein update aus sowie ein shutdown restart.

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)

herman

Hallo Markus,

Danke für Deine Mühe und die sensationell schnelle Umsetzung.
Nach einem Update bin ich jetzt auf der Version 2458 von 71_YAHMAHA_AVR.pm und bekomme zyklisch folgende Fehlermeldung in der Konsole:

Use of uninitialized value in concatenation (.) or string at /opt/share/fhem-5.3/FHEM/71_YAMAHA_AVR.pm line 481.

Im log erscheint im selben Intervall folgende Einträge:

2013.01.10 15:36:06 3: YAMAHA_AVR: could not get unit description url from device WZ_AVR
2013.01.10 15:36:09 3: YAMAHA_AVR: could not get system configuration from device WZ_AVR

Viele Grüße,
Merhan

Zitat von: Markus Bloch schrieb am Mo, 07 Januar 2013 22:36Habe nun alles soweit fertig eingebracht.

Bitte für morgen mal ein update aus sowie ein shutdown restart.

Viele Grüße

Markus

Markus Bloch

Hallo Merhan,

vielen Dank für die Info, das war noch ein Schönheitsfehler im Code. Zu den beiden anderen Fehlermeldungen im Log:


2013.01.10 15:36:06 3: YAMAHA_AVR: could not get unit description url from device WZ_AVR
2013.01.10 15:36:09 3: YAMAHA_AVR: could not get system configuration from device WZ_AVR


Dies bedeutet, dass FHEM sich nicht zu deinem Receiver verbinden kann um die Grundkonfiguration zu ermitteln (welche Zonen sind Verfügbar? Welche Inputs sind verfügbar). Bitte in diesem Falle den Receiver einmal kurz einschalten (evtl. direkt via set WZ_AVR statusRequest die Daten abfragen). Wenn er die Grundkonfiguration hat, dann ist er wieder still, sobald dein Receiver offline ist.

Ich habe heute soeben diese Logmeldungen mit in die einmaligen Logmeldungen bei Nichterreichbarkeit gepackt.

Bitte morgen ebenfalls nochmal testen. Wenn der Receiver beim Neustart von FHEM aus ist, dann wird die Detail-Seite zu dem Device relativ leer sein, erst sobald er eine Verbindung aufbauen kann, werden dann die verfügbaren Inputs, Model, Name, Firmware, usw. abgefragt.

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)

herman

Danke Markus!

Werde es morgen Abend gleich testen.

Viele Grüße,
Merhan