Hallo,
ich möchte eine Log-datei mit Informationen ergänzen. Dazu gibt es folgendes Szenario:
- Definition Gerät
###############################################
#####
################################################
define StromZaehler CUL_EM 1 150 1800 0.18802 6.6164
attr StromZaehler IODev CUL_868
attr StromZaehler fm_view 0,0
attr StromZaehler icon openautomation/measure_power_meter
attr StromZaehler model EMWZ
attr StromZaehler room H.DV.Strom
#################################################
define FileLog_StromZaehler_Gesamt FileLog /opt/fhem/log/StromZaehler_Gesamt-%Y.log StromZaehler
attr FileLog_StromZaehler_Gesamt icon edit_save
attr FileLog_StromZaehler_Gesamt logtype MyPowerkWhDay:Power,text
attr FileLog_StromZaehler_Gesamt room H.DV.Strom
- Definition Ergänzung
################################################
#####
################################################
define StromZaehler_CNT notify StromZaehler:CNT.* { \
fhem ('trigger StromZaehler test');; \
Log 1, ">>> test";; \
}
attr StromZaehler_CNT room Z.HA.fhem
trigger manuell ausgeführt schreibt die Information in die Log Datei. Aus der obigen Ergänzung heraus nicht.
Was ist hier falsch?
Danke schon mal für Eure Antworten.
ciao walter
Hi Walter,
dann kann ja nur dein event :CNT.*
nicht stimmen.
Gruß
Frank
Hallo Frank,
die Log Information wird geschrieben, d.h. der Event wird ausgelöst.
ciao walter
Hallo,
ich habe jetzt das trigger in ein sub ausgelagert:
sub
Write2Log($$) {
my ($logdevice, $loginfo) = @_; # device and info to be used
Log 1, ">>> $logdevice $loginfo";
fhem "trigger $logdevice $loginfo";
}
Aufruf geschieht wie folgt:
define StromZaehler_CNT notify StromZaehler:CNT.* { \
my $dev = "StromZaehler";; \
my $info ="Test: test";; \
Write2Log("$dev", "$info");; \
}
attr StromZaehler_CNT room Z.HA.fhem
Wird das sub über das notify aufgerufen erscheint der Log-Eintag im Haupt-log, aber kein Eintrag im StromZaehler-log.
Rufe ich das sub mit
{ Write2Log("StromZaehler","Test: test") }
auf so bekomme ich einen Eintrag im StromZaehler-Log.
Persönlicher System-Modus meldet: Völlige Verwirrung!
Hat jemand ne Erklärung dafür?
Danke und ciao walter
in deinem triggrer fehlt der doppelpunkt nach dem device:fhem "trigger $logdevice: $loginfo";
gruss
andre
mmmmmmmmhhhhhh, nö.
2013.09.22 12:48:28.386 1: >>> StromZaehler Test: test
2013.09.22 12:48:28.387 3: trigger StromZaehler: Test: test : Please define Stro
mZaehler: first
ciao walter
sorry. das war natürlich blödsinn und ich noch nicht ganz wach.
das problem ist die reihenfolge der aufrufe vom filelog und deinem notify. leider kann man die so viel ich weiss nur vom modul code sauber beinflussen.
der unsaubere weg ist von hand so etwas zu setzen:{$defs{StromZaehler_CNT}{NTFY_ORDER}="10-StromZaehler_CNT"};
bei dir kann es aber sein das es reicht wenn der name des triggers alphabetisch vor dem namen des filelog liegt.
gruss
andre
Hallo Andre,
folgendes um diesen threat abzuschließen.
die $defs Anweisung funktioniert, aber erst ab dem zweiten Aufruf.
das mit der alphabetischen Ordung habe ich nicht hinbekommen.
ciao walter