FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: AndreAC am 04 April 2022, 18:19:16

Titel: [Gelöst] FileLog enthält nur die ersten 3 von 4 in der RegExp definierten Werten
Beitrag von: AndreAC am 04 April 2022, 18:19:16
Hallo zusammen,

ich habe aktuell das Problem, dass immer nur drei Readings meines Dummys in das zugehörige FileLog geschrieben werden, obwohl eigentlich vier festgelegt sind... und mittlerweile verzweifele ich an diesem Problem, obwohl ich mir sicher bin, dass es nur ein kleiner Denkfehler sein kann.

Ich wäre für jegliche Unterstützung dankbar. Unten findet ihr alle Informationen, die aus meiner Sicht weiterhelfen könnten. Sollte noch eine Info fehlen, sagt mir bitte Bescheid. Über Google bzw. die Suche bin ich nicht fündig geworden, im FHEM-Logfile habe ich keine zugehörigen Einträge gefunden.

1. Vorhaben

Ich habe meine Heizung über das vitoconnect Modul eingebunden und wie im Wiki beschrieben (https://wiki.fhem.de/wiki/Vitoconnect#Userreadings_um_Reading_f.C3.BCr_Einzelwerte_von_Gasverbr.C3.A4uche_zu_erzeugen) um UserReadings für die "Einzelverbräuche" ergänzt. Ergänzend zum Wiki habe ich neben Gasverbrauch Heizung und Warmwasser auch noch Gasverbrauch Total ergänzt, außerdem hießen die Reading zum Stromverbrauch bei mir Stromverbrauch_Total (also z.B. Stromverbrauch_Total/Tag statt Stromverbrauch/Tag).

Nun würde ich gerne täglich einmal den Tagesverbrauch loggen und mir daraus einen Plot generieren. Was ich aber vermeiden möchte, ist ein gigantisches Logfile mit minütlichen Verbrauchswerten - einmal täglich reicht mir vollkommen.

2. Vorgehen

Um mein Ziel zu erreichen, habe ich einen Dummy angelegt, dessen Readings jeweils einmal täglich um kurz vor Mitternacht über ein At mit den Tageswerten beschrieben werden, und die dann entsprechend geloggt werden sollen.

Mein Dummy ist dabei sehr simpel:


define Heizung_Verbrauch dummy
setuuid Heizung_Verbrauch 624afa64-f33f-50bc-a4f4-875cc90dc2d6b574
attr Heizung_Verbrauch group Heizung
attr Heizung_Verbrauch room 5.Heizung


Hier mein At um die Readings einmal täglich zu setzen:


define Heizung_Verbrauch_Update at *23:59:55 {\
fhem("setreading Heizung_Verbrauch Gasverbrauch_Total [vitoconnect:Gasverbrauch_heute]");;\
fhem("setreading Heizung_Verbrauch Gasverbrauch_Heizung [vitoconnect:Gasverbrauch_Heizung_heute]");;\
fhem("setreading Heizung_Verbrauch Gasverbrauch_Wasser [vitoconnect:Gasverbrauch_WW_heute]");;\
fhem("setreading Heizung_Verbrauch Stromverbrauch [vitoconnect:Stromverbrauch_heute]");;\
}
setuuid Heizung_Verbrauch_Update 624b0813-f33f-50bc-aa03-1e555412c41360e0


Und last but not least mein FileLog, das diese Readings mitloggen soll:


define FileLog_Heizung_Verbrauch FileLog ./log/HeizungVerbrauch-%Y-%m.log Heizung_Verbrauch:Gasverbrauch_Total|Heizung_Verbrauch:Gasverbrauch_Heizung|Heizung_Verbrauch:Gasverbrauch_Wasser|Heizung_Verbrauch:Stromverbrauch
setuuid FileLog_Heizung_Verbrauch 624b0813-f33f-50bc-d1f8-d8661afb7ea0efe0


Zum Testen führe ich nun folgendes Kommando aus:


set Heizung_Verbrauch_Update execNow


Soweit funktioniert alles, mein Dummy beinhaltet die vier gewünschten Werte mit aktuellem Zeitstempel.

Im Logfile tauchen aber immer nur die ersten drei definierten Werte auf, wie oben für das FileLog definiert also der Gasverbrauch total, Heizung & Wasser, aber nicht der Stromverbrauch auf. Schiebe ich den Stromverbrauch nach vorne, werden Stromverbrauch, Gas total und Gas Heizung geloggt, Gas Wasser verschwindet aber aus dem Logfile - ein Beispiel:


2022-04-04_17:37:31 Heizung_Verbrauch Gasverbrauch_Total: 116
2022-04-04_17:37:31 Heizung_Verbrauch Gasverbrauch_Heizung: 106
2022-04-04_17:37:31 Heizung_Verbrauch Gasverbrauch_Wasser: 10


3. Details

Da es natürlich wahrscheinlich ist, dass ich ein wichtiges Detail übersehen habe, hier noch die Device List für Dummy, At und Logfile:


Internals:
   CFGFN      ./conf/02_vitoconnect.cfg
   FUUID      624afa64-f33f-50bc-a4f4-875cc90dc2d6b574
   NAME       Heizung_Verbrauch
   NR         69
   STATE      ???
   TYPE       dummy
   READINGS:
     2022-04-04 17:37:31   Gasverbrauch_Heizung 106
     2022-04-04 17:37:31   Gasverbrauch_Total 116
     2022-04-04 17:37:31   Gasverbrauch_Wasser 10
     2022-04-04 17:37:31   Stromverbrauch  0.608
Attributes:
   group      Heizung
   room       5.Heizung



Internals:
   CFGFN      ./conf/02_vitoconnect.cfg
   COMMAND    {
fhem("setreading Heizung_Verbrauch Gasverbrauch_Total [vitoconnect:Gasverbrauch_heute]");
fhem("setreading Heizung_Verbrauch Gasverbrauch_Heizung [vitoconnect:Gasverbrauch_Heizung_heute]");
fhem("setreading Heizung_Verbrauch Gasverbrauch_Wasser [vitoconnect:Gasverbrauch_WW_heute]");
fhem("setreading Heizung_Verbrauch Stromverbrauch [vitoconnect:Stromverbrauch_heute]");
}
   DEF        *23:59:55 {
fhem("setreading Heizung_Verbrauch Gasverbrauch_Total [vitoconnect:Gasverbrauch_heute]");
fhem("setreading Heizung_Verbrauch Gasverbrauch_Heizung [vitoconnect:Gasverbrauch_Heizung_heute]");
fhem("setreading Heizung_Verbrauch Gasverbrauch_Wasser [vitoconnect:Gasverbrauch_WW_heute]");
fhem("setreading Heizung_Verbrauch Stromverbrauch [vitoconnect:Stromverbrauch_heute]");
}
   FUUID      624b0813-f33f-50bc-aa03-1e555412c41360e0
   NAME       Heizung_Verbrauch_Update
   NR         71
   PERIODIC   yes
   RELATIVE   no
   REP        -1
   STATE      Next: 23:59:55
   TIMESPEC   23:59:55
   TRIGGERTIME 1649109595
   TRIGGERTIME_FMT 2022-04-04 23:59:55
   TYPE       at
   READINGS:
     2022-04-04 17:19:00   state           Next: 23:59:55
Attributes:
   group      Steuerung



Internals:
   CFGFN      ./conf/02_vitoconnect.cfg
   DEF        ./log/HeizungVerbrauch-%Y-%m.log Heizung_Verbrauch:Gasverbrauch_Total|Heizung_Verbrauch:Gasverbrauch_Heizung|Heizung_Verbrauch:Gasverbrauch_Wasser|Heizung_Verbrauch:Stromverbrauch
   FD         14
   FUUID      624b0813-f33f-50bc-d1f8-d8661afb7ea0efe0
   NAME       FileLog_Heizung_Verbrauch
   NOTIFYDEV  Heizung_Verbrauch
   NR         73
   NTFY_ORDER 50-FileLog_Heizung_Verbrauch
   REGEXP     Heizung_Verbrauch:Gasverbrauch_Total|Heizung_Verbrauch:Gasverbrauch_Heizung|Heizung_Verbrauch:Gasverbrauch_Wasser|Heizung_Verbrauch:Stromverbrauch
   STATE      active
   TYPE       FileLog
   currentlogfile ./log/HeizungVerbrauch-2022-04.log
   logfile    ./log/HeizungVerbrauch-%Y-%m.log
   READINGS:
     2022-04-04 17:37:31   linesInTheFile  18
Attributes:
   group      Logfiles
   room       Logfiles
Titel: Antw:FileLog enthält nur die ersten 3 von 4 in der RegExp definierten Werten
Beitrag von: frank am 04 April 2022, 18:36:12
was steht in fhem.log beim ausführen des at?
reduziere mal die 4 fhem() cmds im at.
also zb alle 4 setreading cmds in ein fhem() "verpacken".
Titel: Antw:FileLog enthält nur die ersten 3 von 4 in der RegExp definierten Werten
Beitrag von: Otto123 am 04 April 2022, 18:39:46
Lösung:
defmod FileLog_Heizung_Verbrauch FileLog ./log/HeizungVerbrauch-%Y-%m.log Heizung_Verbrauch:Gas.*|Heizung_Verbrauch:Strom.*

War nur ne Idee - die Zeile fürs regExp ist zu lang ?
So was hatte ich schon mal gelesen aber es gab eigentlich keine Erklärung dafür https://forum.fhem.de/index.php?topic=86451.0
Titel: Antw:FileLog enthält nur die ersten 3 von 4 in der RegExp definierten Werten
Beitrag von: DetlefR am 04 April 2022, 18:47:57
Wie wäre es damit

define FileLog_Heizung_Verbrauch FileLog ./log/HeizungVerbrauch-%Y-%m.log Heizung_Verbrauch:.*
Soweit ich gesehen habe, sind ja nur die drei Readings in "Heizung_Verbrauch"
Titel: Antw:FileLog enthält nur die ersten 3 von 4 in der RegExp definierten Werten
Beitrag von: AndreAC am 04 April 2022, 18:52:47
Zitat von: Otto123 am 04 April 2022, 18:39:46
Lösung:
defmod FileLog_Heizung_Verbrauch FileLog ./log/HeizungVerbrauch-%Y-%m.log Heizung_Verbrauch:Gas.*|Heizung_Verbrauch:Strom.*

Ich meine das regExp ist zu lang ?

Vielen Dank, das war schon des Rätsels Lösung...

Kannst Du mir auch erklären, wieso das so ist? Ich habe ganz bewusst nicht angefangen, den Ausdruck zu vereinfachen, um mir darüber keine Fehler "einzufangen".

An der Länge an sich kann es ja nicht liegen, folgender RegExp aus dem Wiki für das vitoconnect-Modul funktioniert ja auch:

define FileLog_VitoConnect FileLog ./log/VitoConnect-%Y-%m.log vitoconnect:Aussentemperatur|vitoconnect:Brenner_Modulation|vitoconnect:Brenner_aktiv|vitoconnect:Gasverbrauch_Heizung/Jahr|vitoconnect:Gasverbrauch_aktuelle_Woche|vitoconnect:Gasverbrauch_aktueller_Monat|vitoconnect:Gasverbrauch_gestern|vitoconnect:Gasverbrauch_heute|vitoconnect:HK1-Betriebsart|vitoconnect:HK1-Frostschutz_Status|vitoconnect:HK1-Programmstatus|vitoconnect:HK1-Solltemperatur_aktiv|vitoconnect:HK1-Solltemperatur_normal|vitoconnect:HK1-Solltemperatur_reduziert|vitoconnect:HK1-Solltemperatur_reduziert_aktiv|vitoconnect:HK1-Vorlauftemperatur|vitoconnect:HK1-WW_aktiv|vitoconnect:HK1-WW_und_Heizen_aktiv|vitoconnect:HK1-Zirkulationspumpe|vitoconnect:Kessel_Common_Supply_Temperatur|vitoconnect:Kesseltemperatur_exact|vitoconnect:WW-Isttemperatur|vitoconnect:WW-Sensoren_Auslauf_Wert|vitoconnect:WW-Solltemperatur|vitoconnect:WW-Zirkulationspumpe_Status|vitoconnect:WW-zeitgesteuert_aktiv
attr FileLog_VitoConnect room Log
Titel: Antw:FileLog enthält nur die ersten 3 von 4 in der RegExp definierten Werten
Beitrag von: AndreAC am 04 April 2022, 18:57:26
Zitat von: DetlefR am 04 April 2022, 18:47:57
Wie wäre es damit

define FileLog_Heizung_Verbrauch FileLog ./log/HeizungVerbrauch-%Y-%m.log Heizung_Verbrauch:.*
Soweit ich gesehen habe, sind ja nur die drei Readings in "Heizung_Verbrauch"

Stimmt, das ist natürlich noch einfacher.
Titel: Antw:FileLog enthält nur die ersten 3 von 4 in der RegExp definierten Werten
Beitrag von: Otto123 am 04 April 2022, 19:40:44
Zitat von: AndreAC am 04 April 2022, 18:52:47
Kannst Du mir auch erklären, wieso das so ist? Ich habe ganz bewusst nicht angefangen, den Ausdruck zu vereinfachen, um mir darüber keine Fehler "einzufangen".

An der Länge an sich kann es ja nicht liegen, folgender RegExp aus dem Wiki für das vitoconnect-Modul funktioniert ja auch:
Kann ich leider nicht. Da Du die Vorlage geliefert hattest, habe ich kurz probiert und hatte die Idee es kürzer zu machen.
Titel: Antw:[Gelöst] FileLog enthält nur die ersten 3 von 4 in der RegExp definierten Werten
Beitrag von: AndreAC am 04 April 2022, 22:20:18
Ok, danke  :)

Ich werde mir das morgen nochmal im RegExp Tester anschauen. Wenn ich den Fehler finde, poste ich nochmal... immerhin könnte das ja noch jemandem helfen  ;)