92_FileLog Problem: Die Regex findet keine readings mit Zahl im Namen

Begonnen von frank, 06 September 2014, 17:34:03

Vorheriges Thema - Nächstes Thema

frank

hallo,

mit setreading erzeuge ich mir readings in einem device. diese readings lassen sich aber mit filelog nicht loggen. mit notify oder readingshistory kann ich die events dieser readings, wie gewünscht, empfangen. auch auf der detailseite des device im webif werden die readings aktualisiert. nur filelog mag sie nicht.

die readings sind humidityAbsolut0 bis humidityAbsolut4. das device hat den namen Thermostat.Keller_Weather. meine regex für filelog soll lauten:

Thermostat.Keller.*

damit möchte ich alle readings der devices Thermostat.Keller, Thermostat.Keller_Climate, Thermostat.Keller_Weather und Thermostat.Keller_WindowRec loggen

könnte man das verhalten von filelog an das der anderen module anpassen?

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

frank

schöne idee, aber zum scheitern verdammt.

gibt es eigentlich verschiedene klassen von events?

weil mit:

Thermostat.Keller.*

erhalte ich im logfile auch modulinterne readings, die zahlen enthalten:

2014-09-06_21:40:14 Thermostat.Keller rssi_at_cul868: -91
2014-09-06_21:40:15 Thermostat.Keller rssi_at_hmlan1: -84
2014-09-06_21:40:15 Thermostat.Keller rssi_at_hmusb1: -83


komischerweise wird auch bei einem trigger geloggt:

trigger Thermostat.Keller_Weather humidityAbsolut0: 14

nur meine durch setreading erstellten readings werden nicht geloggt. nicht so

Thermostat.Keller_Weather:(humidityAbsolut0):.*

noch so:

Thermostat.Keller_Weather:(humidityAbsolut[0-4]):.*


langsam verzweifel ich.  :(

edit: oder liegt es an setreading?

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

rudolfkoenig

Hat vmtl. nichts mit dem Regexp zu tun.
Kannst du  ein "global verbose 5" Protokoll eines events, was diese Readings erzeugt, hier posten?

frank

hallo rudi,

hier der hoffentlich ausreichende abschnitt:

2014.09.07 08:32:07.652 4: CUL_Parse: cul868 A 0C 5C 8670 206219 000000 00A45DE9 -85.5
2014.09.07 08:32:07.656 5: cul868 dispatch A0C5C867020621900000000A45D::-85.5:cul868
2014.09.07 08:32:07.700 5: Triggering Thermostat.Keller (4 changes)
2014.09.07 08:32:07.701 5: Notify loop for Thermostat.Keller T: 16.4 H: 93
2014.09.07 08:32:07.713 5: my: Notification of 'Thermostat.Keller' received. Device not monitored.
2014.09.07 08:32:07.778 5: myTemp: not on any display, ignoring notify
2014.09.07 08:32:07.822 5: Triggering Thermostat.Keller_Weather (3 changes)
2014.09.07 08:32:07.824 5: Notify loop for Thermostat.Keller_Weather T: 16.4 H: 93
2014.09.07 08:32:07.836 4: Calculating min/avg/max statistics for 'Thermostat.Keller_Weather:humidityAbsolut0 = 12.9'
2014.09.07 08:32:07.839 5: Set 'statHumidityAbsolut0Hour'='Min: 12.8 Avg: 12.8 Max: 12.9'
2014.09.07 08:32:07.842 5: Set '.Thermostat.Keller_Weather:humidityAbsolut0Hour'='Sum: 24776.8 Time: 1932 LastValue: 12.9 LastTime: 1410071527 ShowDate: 0'
2014.09.07 08:32:07.845 5: Set 'statHumidityAbsolut0Day'='Min: 12.7 Avg: 12.9 Max: 13.0'
2014.09.07 08:32:07.847 5: Set '.Thermostat.Keller_Weather:humidityAbsolut0Day'='Sum: 395836.9 Time: 30732 LastValue: 12.9 LastTime: 1410071527 ShowDate: 0'
2014.09.07 08:32:07.850 5: Set 'statHumidityAbsolut0Month'='Min: 0.0 Avg: 12.2 Max: 13.3 (since:  )'
2014.09.07 08:32:07.853 5: Set '.Thermostat.Keller_Weather:humidityAbsolut0Month'='Sum: 3957994.3 Time: 323368 LastValue: 12.9 LastTime: 1410071527 ShowDate: 1'
2014.09.07 08:32:07.856 5: Set 'statHumidityAbsolut0Year'='Min: 0.0 Avg: 12.2 Max: 13.3 (since:  )'
2014.09.07 08:32:07.859 5: Set '.Thermostat.Keller_Weather:humidityAbsolut0Year'='Sum: 3957994.5 Time: 323368 LastValue: 12.9 LastTime: 1410071527 ShowDate: 1'
2014.09.07 08:32:07.862 4: Calculating min/avg/max statistics for 'Thermostat.Keller_Weather:dewpoint = 15.3'
2014.09.07 08:32:07.864 5: Set 'statDewpointHour'='Min: 15.3 Avg: 15.3 Max: 15.4'
2014.09.07 08:32:07.867 5: Set '.Thermostat.Keller_Weather:dewpointHour'='Sum: 29636.4 Time: 1932 LastValue: 15.3 LastTime: 1410071527 ShowDate: 0'
2014.09.07 08:32:07.870 5: Set 'statDewpointDay'='Min: 15.1 Avg: 15.4 Max: 15.5'
2014.09.07 08:32:07.873 5: Set '.Thermostat.Keller_Weather:dewpointDay'='Sum: 472157.8 Time: 30732 LastValue: 15.3 LastTime: 1410071527 ShowDate: 0'
2014.09.07 08:32:07.876 5: Set 'statDewpointMonth'='Min: 13.9 Avg: 14.8 Max: 15.7 (since: 2014-09-04_12:26:18 )'
2014.09.07 08:32:07.879 5: Set '.Thermostat.Keller_Weather:dewpointMonth'='Sum: 3635635.8 Time: 245148 LastValue: 15.3 LastTime: 1410071527 ShowDate: 1'
2014.09.07 08:32:07.882 5: Set 'statDewpointYear'='Min: 13.9 Avg: 14.8 Max: 15.7 (since: 2014-09-04_12:26:18 )'
2014.09.07 08:32:07.885 5: Set '.Thermostat.Keller_Weather:dewpointYear'='Sum: 3635636 Time: 245148 LastValue: 15.3 LastTime: 1410071527 ShowDate: 1'
2014.09.07 08:32:07.887 4: Calculating min/avg/max statistics for 'Thermostat.Keller_Weather:measured-temp = 16.4'
2014.09.07 08:32:07.889 5: Set 'statMeasured-tempHour'='Min: 16.4 Avg: 16.4 Max: 16.5'
2014.09.07 08:32:07.893 5: Set '.Thermostat.Keller_Weather:measured-tempHour'='Sum: 31732 Time: 1932 LastValue: 16.4 LastTime: 1410071527 ShowDate: 0'
2014.09.07 08:32:07.895 5: Set 'statMeasured-tempDay'='Min: 16.4 Avg: 16.5 Max: 16.6'
2014.09.07 08:32:07.898 5: Set '.Thermostat.Keller_Weather:measured-tempDay'='Sum: 506811.8 Time: 30732 LastValue: 16.4 LastTime: 1410071527 ShowDate: 0'
2014.09.07 08:32:07.901 5: Set 'statMeasured-tempMonth'='Min: 15.9 Avg: 16.5 Max: 18.2 (since: 2014-09-04_12:26:18 )'
2014.09.07 08:32:07.904 5: Set '.Thermostat.Keller_Weather:measured-tempMonth'='Sum: 4039133.1 Time: 245149 LastValue: 16.4 LastTime: 1410071527 ShowDate: 1'
2014.09.07 08:32:07.907 5: Set 'statMeasured-tempYear'='Min: 15.9 Avg: 16.5 Max: 18.2 (since: 2014-09-04_12:26:18 )'
2014.09.07 08:32:07.910 5: Set '.Thermostat.Keller_Weather:measured-tempYear'='Sum: 4039133.1 Time: 245149 LastValue: 16.4 LastTime: 1410071527 ShowDate: 1'
2014.09.07 08:32:07.921 5: my: Notification of 'Thermostat.Keller_Weather' received. Update statistics.
2014.09.07 08:32:07.986 5: myTemp: not on any display, ignoring notify
2014.09.07 08:32:08.001 5: Triggering n_klima
2014.09.07 08:32:08.011 4: n_klima exec {
my $humAbs=AbsoluteFeuchte(ReadingsVal($NAME,"measured-temp",0),ReadingsVal($NAME,"humidity",0));;
  my $oldReading=ReadingsVal($NAME,"humidityAbsolut0","");;
    if($humAbs != $oldReading) {
        for(my $i=3;;$i>=0;;$i--) {
          $oldReading=ReadingsVal($NAME,"humidityAbsolut".$i,"?");;
          fhem("setreading $NAME humidityAbsolut".($i+1)." $oldReading");;
        }
        fhem("setreading $NAME humidityAbsolut0 $humAbs");;
        for(my $i=2;;$i>=0;;$i--) {
          $oldReading=ReadingsVal($NAME,"humidityAbsolutDelta".$i,"?");;
          fhem("setreading $NAME humidityAbsolutDelta".($i+1)." $oldReading");;
        }
    my $deltaHumAbs=ReadingsVal($NAME,"humidityAbsolut0","?")-ReadingsVal($NAME,"humidityAbsolut1","?");;
        fhem("setreading $NAME humidityAbsolutDelta0 $deltaHumAbs");;
        my $trend="???";;
        my $delta0=ReadingsVal($NAME,"humidityAbsolutDelta0","?");;
        my $delta1=ReadingsVal($NAME,"humidityAbsolutDelta1","?");;
        my $delta2=ReadingsVal($NAME,"humidityAbsolutDelta2","?");;
        my $delta3=ReadingsVal($NAME,"humidityAbsolutDelta3","?");;
        if($delta3<0 && $delta2<0 && $delta1<0 && $delta0<0) {$trend="â†"â†"";;}
        elsif($delta3<0 && $delta2<0 && $delta1<0 && $delta0>0) {$trend="â†"↗";;}
        elsif($delta3<0 && $delta2<0 && $delta1>0 && $delta0<0) {$trend="↘â†'";;}
        elsif($delta3<0 && $delta2<0 && $delta1>0 && $delta0>0) {$trend="↘↗";;}
        elsif($delta3<0 && $delta2>0 && $delta1<0 && $delta0<0) {$trend="â†'↘";;}
        elsif($delta3<0 && $delta2>0 && $delta1<0 && $delta0>0) {$trend="â†'â†'";;}
        elsif($delta3<0 && $delta2>0 && $delta1>0 && $delta0<0) {$trend="↗↘";;}
        elsif($delta3<0 && $delta2>0 && $delta1>0 && $delta0>0) {$trend="↘â†'";;}
        elsif($delta3>0 && $delta2<0 && $delta1<0 && $delta0<0) {$trend="↗â†"";;}
        elsif($delta3>0 && $delta2<0 && $delta1<0 && $delta0>0) {$trend="↘↗";;}
        elsif($delta3>0 && $delta2<0 && $delta1>0 && $delta0<0) {$trend="â†'â†'";;}
        elsif($delta3>0 && $delta2<0 && $delta1>0 && $delta0>0) {$trend="â†'↗";;}
        elsif($delta3>0 && $delta2>0 && $delta1<0 && $delta0<0) {$trend="↗↘";;}
        elsif($delta3>0 && $delta2>0 && $delta1<0 && $delta0>0) {$trend="↗â†'";;}
        elsif($delta3>0 && $delta2>0 && $delta1>0 && $delta0<0) {$trend="â†'↘";;}
        elsif($delta3>0 && $delta2>0 && $delta1>0 && $delta0>0) {$trend="â†'â†'";;}
        else {$trend="???";;}
        fhem("setreading $NAME humidityAbsolutTrend $trend");;
        my $device=$NAME;;
        $device=~s/_Weather//;;
        fhem("setreading $device humidityAbsolutTrend $trend");;
}
}
2014.09.07 08:32:08.023 5: Cmd: >{
my $humAbs=AbsoluteFeuchte(ReadingsVal($NAME,"measured-temp",0),ReadingsVal($NAME,"humidity",0));
  my $oldReading=ReadingsVal($NAME,"humidityAbsolut0","");
    if($humAbs != $oldReading) {
        for(my $i=3;$i>=0;$i--) {
          $oldReading=ReadingsVal($NAME,"humidityAbsolut".$i,"?");
          fhem("setreading $NAME humidityAbsolut".($i+1)." $oldReading");
        }
        fhem("setreading $NAME humidityAbsolut0 $humAbs");
        for(my $i=2;$i>=0;$i--) {
          $oldReading=ReadingsVal($NAME,"humidityAbsolutDelta".$i,"?");
          fhem("setreading $NAME humidityAbsolutDelta".($i+1)." $oldReading");
        }
    my $deltaHumAbs=ReadingsVal($NAME,"humidityAbsolut0","?")-ReadingsVal($NAME,"humidityAbsolut1","?");
        fhem("setreading $NAME humidityAbsolutDelta0 $deltaHumAbs");
        my $trend="???";
        my $delta0=ReadingsVal($NAME,"humidityAbsolutDelta0","?");
        my $delta1=ReadingsVal($NAME,"humidityAbsolutDelta1","?");
        my $delta2=ReadingsVal($NAME,"humidityAbsolutDelta2","?");
        my $delta3=ReadingsVal($NAME,"humidityAbsolutDelta3","?");
        if($delta3<0 && $delta2<0 && $delta1<0 && $delta0<0) {$trend="â†"â†"";}
        elsif($delta3<0 && $delta2<0 && $delta1<0 && $delta0>0) {$trend="â†"↗";}
        elsif($delta3<0 && $delta2<0 && $delta1>0 && $delta0<0) {$trend="↘â†'";}
        elsif($delta3<0 && $delta2<0 && $delta1>0 && $delta0>0) {$trend="↘↗";}
        elsif($delta3<0 && $delta2>0 && $delta1<0 && $delta0<0) {$trend="â†'↘";}
        elsif($delta3<0 && $delta2>0 && $delta1<0 && $delta0>0) {$trend="â†'â†'";}
        elsif($delta3<0 && $delta2>0 && $delta1>0 && $delta0<0) {$trend="↗↘";}
        elsif($delta3<0 && $delta2>0 && $delta1>0 && $delta0>0) {$trend="↘â†'";}
        elsif($delta3>0 && $delta2<0 && $delta1<0 && $delta0<0) {$trend="↗â†"";}
        elsif($delta3>0 && $delta2<0 && $delta1<0 && $delta0>0) {$trend="↘↗";}
        elsif($delta3>0 && $delta2<0 && $delta1>0 && $delta0<0) {$trend="â†'â†'";}
        elsif($delta3>0 && $delta2<0 && $delta1>0 && $delta0>0) {$trend="â†'↗";}
        elsif($delta3>0 && $delta2>0 && $delta1<0 && $delta0<0) {$trend="↗↘";}
        elsif($delta3>0 && $delta2>0 && $delta1<0 && $delta0>0) {$trend="↗â†'";}
        elsif($delta3>0 && $delta2>0 && $delta1>0 && $delta0<0) {$trend="â†'↘";}
        elsif($delta3>0 && $delta2>0 && $delta1>0 && $delta0>0) {$trend="â†'â†'";}
        else {$trend="???";}
        fhem("setreading $NAME humidityAbsolutTrend $trend");
        my $device=$NAME;
        $device=~s/_Weather//;
        fhem("setreading $device humidityAbsolutTrend $trend");
}
}<
2014.09.07 08:32:08.054 5: Cmd: >setreading Thermostat.Keller_Weather humidityAbsolut4 12.8<
2014.09.07 08:32:08.065 5: Triggering Thermostat.Keller_Weather (5 changes)
2014.09.07 08:32:08.067 5: Cmd: >setreading Thermostat.Keller_Weather humidityAbsolut3 12.9<
2014.09.07 08:32:08.078 5: Triggering Thermostat.Keller_Weather (6 changes)
2014.09.07 08:32:08.081 5: Cmd: >setreading Thermostat.Keller_Weather humidityAbsolut2 12.8<
2014.09.07 08:32:08.093 5: Triggering Thermostat.Keller_Weather (7 changes)
2014.09.07 08:32:08.096 5: Cmd: >setreading Thermostat.Keller_Weather humidityAbsolut1 12.9<
2014.09.07 08:32:08.106 5: Triggering Thermostat.Keller_Weather (8 changes)
2014.09.07 08:32:08.109 5: Cmd: >setreading Thermostat.Keller_Weather humidityAbsolut0 12.8<
2014.09.07 08:32:08.120 5: Triggering Thermostat.Keller_Weather (9 changes)
2014.09.07 08:32:08.123 5: Cmd: >setreading Thermostat.Keller_Weather humidityAbsolutDelta3 0.0999999999999996<
2014.09.07 08:32:08.135 5: Triggering Thermostat.Keller_Weather (10 changes)
2014.09.07 08:32:08.137 5: Cmd: >setreading Thermostat.Keller_Weather humidityAbsolutDelta2 -0.0999999999999996<
2014.09.07 08:32:08.148 5: Triggering Thermostat.Keller_Weather (11 changes)
2014.09.07 08:32:08.151 5: Cmd: >setreading Thermostat.Keller_Weather humidityAbsolutDelta1 0.0999999999999996<
2014.09.07 08:32:08.162 5: Triggering Thermostat.Keller_Weather (12 changes)
2014.09.07 08:32:08.165 5: Cmd: >setreading Thermostat.Keller_Weather humidityAbsolutDelta0 -0.0999999999999996<
2014.09.07 08:32:08.177 5: Triggering Thermostat.Keller_Weather (13 changes)
2014.09.07 08:32:08.180 5: Cmd: >setreading Thermostat.Keller_Weather humidityAbsolutTrend â†'â†'<
2014.09.07 08:32:08.191 5: Triggering Thermostat.Keller_Weather (13 changes)
2014.09.07 08:32:08.194 5: Cmd: >setreading Thermostat.Keller humidityAbsolutTrend â†'â†'<
2014.09.07 08:32:08.200 5: Triggering Thermostat.Keller (0 changes)
2014.09.07 08:32:08.205 5: Triggering n_klima
2014.09.07 08:32:08.215 4: n_klima exec {
my $humAbs=AbsoluteFeuchte(ReadingsVal($NAME,"measured-temp",0),ReadingsVal($NAME,"humidity",0));;
  my $oldReading=ReadingsVal($NAME,"humidityAbsolut0","");;
    if($humAbs != $oldReading) {
        for(my $i=3;;$i>=0;;$i--) {
          $oldReading=ReadingsVal($NAME,"humidityAbsolut".$i,"?");;
          fhem("setreading $NAME humidityAbsolut".($i+1)." $oldReading");;
        }
        fhem("setreading $NAME humidityAbsolut0 $humAbs");;
        for(my $i=2;;$i>=0;;$i--) {
          $oldReading=ReadingsVal($NAME,"humidityAbsolutDelta".$i,"?");;
          fhem("setreading $NAME humidityAbsolutDelta".($i+1)." $oldReading");;
        }
    my $deltaHumAbs=ReadingsVal($NAME,"humidityAbsolut0","?")-ReadingsVal($NAME,"humidityAbsolut1","?");;
        fhem("setreading $NAME humidityAbsolutDelta0 $deltaHumAbs");;
        my $trend="???";;
        my $delta0=ReadingsVal($NAME,"humidityAbsolutDelta0","?");;
        my $delta1=ReadingsVal($NAME,"humidityAbsolutDelta1","?");;
        my $delta2=ReadingsVal($NAME,"humidityAbsolutDelta2","?");;
        my $delta3=ReadingsVal($NAME,"humidityAbsolutDelta3","?");;
        if($delta3<0 && $delta2<0 && $delta1<0 && $delta0<0) {$trend="â†"â†"";;}
        elsif($delta3<0 && $delta2<0 && $delta1<0 && $delta0>0) {$trend="â†"↗";;}
        elsif($delta3<0 && $delta2<0 && $delta1>0 && $delta0<0) {$trend="↘â†'";;}
        elsif($delta3<0 && $delta2<0 && $delta1>0 && $delta0>0) {$trend="↘↗";;}
        elsif($delta3<0 && $delta2>0 && $delta1<0 && $delta0<0) {$trend="â†'↘";;}
        elsif($delta3<0 && $delta2>0 && $delta1<0 && $delta0>0) {$trend="â†'â†'";;}
        elsif($delta3<0 && $delta2>0 && $delta1>0 && $delta0<0) {$trend="↗↘";;}
        elsif($delta3<0 && $delta2>0 && $delta1>0 && $delta0>0) {$trend="↘â†'";;}
        elsif($delta3>0 && $delta2<0 && $delta1<0 && $delta0<0) {$trend="↗â†"";;}
        elsif($delta3>0 && $delta2<0 && $delta1<0 && $delta0>0) {$trend="↘↗";;}
        elsif($delta3>0 && $delta2<0 && $delta1>0 && $delta0<0) {$trend="â†'â†'";;}
        elsif($delta3>0 && $delta2<0 && $delta1>0 && $delta0>0) {$trend="â†'↗";;}
        elsif($delta3>0 && $delta2>0 && $delta1<0 && $delta0<0) {$trend="↗↘";;}
        elsif($delta3>0 && $delta2>0 && $delta1<0 && $delta0>0) {$trend="↗â†'";;}
        elsif($delta3>0 && $delta2>0 && $delta1>0 && $delta0<0) {$trend="â†'↘";;}
        elsif($delta3>0 && $delta2>0 && $delta1>0 && $delta0>0) {$trend="â†'â†'";;}
        else {$trend="???";;}
        fhem("setreading $NAME humidityAbsolutTrend $trend");;
        my $device=$NAME;;
        $device=~s/_Weather//;;
        fhem("setreading $device humidityAbsolutTrend $trend");;
}
}
2014.09.07 08:32:08.226 5: Cmd: >{
my $humAbs=AbsoluteFeuchte(ReadingsVal($NAME,"measured-temp",0),ReadingsVal($NAME,"humidity",0));
  my $oldReading=ReadingsVal($NAME,"humidityAbsolut0","");
    if($humAbs != $oldReading) {
        for(my $i=3;$i>=0;$i--) {
          $oldReading=ReadingsVal($NAME,"humidityAbsolut".$i,"?");
          fhem("setreading $NAME humidityAbsolut".($i+1)." $oldReading");
        }
        fhem("setreading $NAME humidityAbsolut0 $humAbs");
        for(my $i=2;$i>=0;$i--) {
          $oldReading=ReadingsVal($NAME,"humidityAbsolutDelta".$i,"?");
          fhem("setreading $NAME humidityAbsolutDelta".($i+1)." $oldReading");
        }
    my $deltaHumAbs=ReadingsVal($NAME,"humidityAbsolut0","?")-ReadingsVal($NAME,"humidityAbsolut1","?");
        fhem("setreading $NAME humidityAbsolutDelta0 $deltaHumAbs");
        my $trend="???";
        my $delta0=ReadingsVal($NAME,"humidityAbsolutDelta0","?");
        my $delta1=ReadingsVal($NAME,"humidityAbsolutDelta1","?");
        my $delta2=ReadingsVal($NAME,"humidityAbsolutDelta2","?");
        my $delta3=ReadingsVal($NAME,"humidityAbsolutDelta3","?");
        if($delta3<0 && $delta2<0 && $delta1<0 && $delta0<0) {$trend="â†"â†"";}
        elsif($delta3<0 && $delta2<0 && $delta1<0 && $delta0>0) {$trend="â†"↗";}
        elsif($delta3<0 && $delta2<0 && $delta1>0 && $delta0<0) {$trend="↘â†'";}
        elsif($delta3<0 && $delta2<0 && $delta1>0 && $delta0>0) {$trend="↘↗";}
        elsif($delta3<0 && $delta2>0 && $delta1<0 && $delta0<0) {$trend="â†'↘";}
        elsif($delta3<0 && $delta2>0 && $delta1<0 && $delta0>0) {$trend="â†'â†'";}
        elsif($delta3<0 && $delta2>0 && $delta1>0 && $delta0<0) {$trend="↗↘";}
        elsif($delta3<0 && $delta2>0 && $delta1>0 && $delta0>0) {$trend="↘â†'";}
        elsif($delta3>0 && $delta2<0 && $delta1<0 && $delta0<0) {$trend="↗â†"";}
        elsif($delta3>0 && $delta2<0 && $delta1<0 && $delta0>0) {$trend="↘↗";}
        elsif($delta3>0 && $delta2<0 && $delta1>0 && $delta0<0) {$trend="â†'â†'";}
        elsif($delta3>0 && $delta2<0 && $delta1>0 && $delta0>0) {$trend="â†'↗";}
        elsif($delta3>0 && $delta2>0 && $delta1<0 && $delta0<0) {$trend="↗↘";}
        elsif($delta3>0 && $delta2>0 && $delta1<0 && $delta0>0) {$trend="↗â†'";}
        elsif($delta3>0 && $delta2>0 && $delta1>0 && $delta0<0) {$trend="â†'↘";}
        elsif($delta3>0 && $delta2>0 && $delta1>0 && $delta0>0) {$trend="â†'â†'";}
        else {$trend="???";}
        fhem("setreading $NAME humidityAbsolutTrend $trend");
        my $device=$NAME;
        $device=~s/_Weather//;
        fhem("setreading $device humidityAbsolutTrend $trend");
}
}<
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Icinger

Statt den ganzen
fhem("setreading $NAME humidityAbsolutTrend $trend");

solltest du unbedingt
readingsSingleUpdate($hash,$reading,$value,$dotrigger);
oder
readingsBeginUpdate($hash);
readingsBulkUpdate($hash,$reading,$value);
readingsEndUpdate($hash, $dotrigger);

verwenden.

Das müsste dann auch FileLog Triggern.

Siehe auch http://www.fhemwiki.de/wiki/DevelopmentIntroduction#Readings
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

frank

danke, werde ich mir die tage mal anschauen.

demnach scheint es dann wohl doch unterschiedliche "eventkanäle" zu geben, aus denen die module fischen können/müssen/sollen.

ich hatte hier http://forum.fhem.de/index.php/topic,26391.msg193747.html#msg193747 auch schon mal ein ähnlich gelagertes problem mit userreadings beschrieben. gab leider keine resonanz.

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

betateilchen

Zitat von: frank am 07 September 2014, 10:51:10
demnach scheint es dann wohl doch unterschiedliche "eventkanäle" zu geben, aus denen die module fischen können/müssen/sollen.

Nein. Wichtig ist nur, dass bei einer reading-Änderung ein event getriggert wird, damit die notify loop überhaupt aktiviert wird und alle notifies, filelogs und dblogs von der Änderung überhaupt etwas mitbekommen.

An der regexp selbst liegt es nicht, FileLog übernimmt diese exakt so, wie sie vom Anwender vorgegeben wird.

Ein userreading entsteht übrigens als Folge eines events, und nicht als dessen Ursache.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

frank

Zitat von: betateilchen am 07 September 2014, 11:04:50
Nein. Wichtig ist nur, dass bei einer reading-Änderung ein event getriggert wird, damit die notify loop überhaupt aktiviert wird und alle notifies, filelogs und dblogs von der Änderung überhaupt etwas mitbekommen.

genau das passiert ja meiner meinung nach auch. mit folgendem test-notify:

define n_test notify Thermostat.Keller.* {Log 1,"------ test ----- $NAME $EVENT"}

erhalte ich folgende fhem.log einträge:

2014.09.06 17:00:04.410 1: ------ test ----- Thermostat.Keller T: 16.7 H: 92
2014.09.06 17:00:04.426 1: ------ test ----- Thermostat.Keller humidity: 92
2014.09.06 17:00:04.446 1: ------ test ----- Thermostat.Keller rateHabs: -2.23803633772569
2014.09.06 17:00:04.461 1: ------ test ----- Thermostat.Keller dewpoint: 15.4
2014.09.06 17:00:05.057 1: ------ test ----- Thermostat.Keller humidityAbsolutTrend: â†'â†'
2014.09.06 17:00:05.158 1: ------ test ----- Thermostat.Keller_Weather T: 16.7 H: 92
2014.09.06 17:00:05.174 1: ------ test ----- Thermostat.Keller_Weather humidity: 92
2014.09.06 17:00:05.189 1: ------ test ----- Thermostat.Keller_Weather humidityAbsolut: 13
2014.09.06 17:00:05.208 1: ------ test ----- Thermostat.Keller_Weather dewpoint: 15.4
2014.09.06 17:00:05.222 1: ------ test ----- Thermostat.Keller_Weather humidityAbsolut4: 13.1
2014.09.06 17:00:05.237 1: ------ test ----- Thermostat.Keller_Weather humidityAbsolut3: 13.2
2014.09.06 17:00:05.252 1: ------ test ----- Thermostat.Keller_Weather humidityAbsolut2: 13
2014.09.06 17:00:05.267 1: ------ test ----- Thermostat.Keller_Weather humidityAbsolut1: 13.1
2014.09.06 17:00:05.282 1: ------ test ----- Thermostat.Keller_Weather humidityAbsolut0: 13
2014.09.06 17:00:05.296 1: ------ test ----- Thermostat.Keller_Weather humidityAbsolutDelta2: -0.199999999999999
2014.09.06 17:00:05.311 1: ------ test ----- Thermostat.Keller_Weather humidityAbsolutDelta1: 0.0999999999999996
2014.09.06 17:00:05.326 1: ------ test ----- Thermostat.Keller_Weather humidityAbsolutDelta0: -0.0999999999999996
2014.09.06 17:00:05.340 1: ------ test ----- Thermostat.Keller_Weather humidityAbsolutTrend: â†'â†'


ZitatAn der regexp selbst liegt es nicht, FileLog übernimmt diese exakt so, wie sie vom Anwender vorgegeben wird.
also event ist da, regexpression ist die selbe. => aber filelog bleibt stumm. ein manuelles triggern über den befehl trigger funktioniert ja.

ZitatEin userreading entsteht übrigens als Folge eines events, und nicht als dessen Ursache.

na logisch. userreadings erzeugen aber auch events. und die frage in dem thread war ja: kann ein 2. userreading durch ein event eines 1. userreading getriggert werden. nach allen beschreibungen sollte das kein problem sein. also auch hier ist nicht das erzeugende event das problem, sondern die auszulösende aktion. die erzeugung eines userreadings durch ein event, das durch ein anderes userreading generiert worden ist. die events des 1. userreading werden geloggt und im webif aktualisiert un über notify erkannt. also event ist da, aber keine reaktion.

alles in allem sagt mir das, dass eine event nicht gleich ein event ist.

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

rudolfkoenig

@Icinger: setreading ruft readingsSingleUpdate mit $dotrigger=1 auf (einfach zu pruefen).

Das Problem ist, dass fhem.pl trigger (== setreading) fuer device X innerhalb eines triggers (== notify) fuer das gleiche device X aus diversen Gruenden ignoriert. Wenn man Events anreichern will, dann
- als Enduser muss man userReadings verwenden, setreading aus der notify funktioniert nicht.
- als Modulprogrammierer muss man die Benachrichtigungsreihenfolge via NotifyOrderPrefix aendern, und das CHANGED Array direkt aendern, update*Reading funktioniert nicht.