Hi zusammen!
Ich habe zurzeit ein eher kosmetisches Problem. Um meine Logs etwas kleiner zu halten und damit auch die Geschwindigkeit beim Erstellen der Plots zu erhöhen, arbeite ich bei mehreren Devices (z.B. PRESENCE) mit dem Attribut event-on-change-reading.
Dies hat auch sehr gut funktioniert - die Logs werden nun nicht mehr mit Repetitionen vollgemüllt.
Allerdings führt das bei den Plots dazu, dass nun immer "Löcher" seit der letzten Änderung aufweisen. Sobald eine weitere Änderung auftritt, wird diese Lücke natürlich geschlossen, aber es sieht halt blöde aus, wenn der Plot seit z.B. 4 Stunden nicht weiter gezeichnet wird, weil keine Änderung kam.
(siehe Anhang / see attachement)
Bei obigen Bild werden ab ca. 12 Uhr im PRESENCE-Plot nur noch die Änderungen (keine) geloggt.
Gibt es also eine Möglichkeit, dass der Plot zum Zeitpunkt des Zeichnens um den letzten bekannten Wert (der sich ja nicht geändert hat[/haben sollte]) quasi aufgefüllt wird?
Gruß
Jan
Hi,
"zum Zeitpunkt des Plots" weiss ich nicht - ich lasse aber jede Stunde den Status einmal firtschreiben, v.a. einmal kurz vor und kurz nach Mitternacht, damit die Werte zu Tages-Anfang und -Ende stimmen.
Siehe http://www.fhemwiki.de/wiki/Plot-Abriss_vermeiden (//www.fhemwiki.de/wiki/Plot-Abriss_vermeiden)
Gruss, Uli
Aaaaah! Da such ich einmal nicht im Wiki, sondern nur im Forum... ;-)
Ist noch nicht die perfekte Lösung, aber hilft mir auf alle Fälle schon mal weiter!
Vielen Dank!
Für weitere Tipps bin ich immer offen ;-)
Jan
das einfachste ist event-on-change mit min-event-intervall zu kombinieren um regelmäßig z.b. alle 15 minuten auf jeden fall ein event zu bekommen.
gruss
andre
*grübel*
bräuchte ich nicht eher ein "max-event-intervall", weil ich die Intervall-Länge dann ja nach oben auf 15 min begrenzen möchte?
Vielleicht denke ich auch nur falsch herum?!?
Jan
nein. min-event-intervall ist das richtige.
das ist das minimale intervall in dem events erzeugt werden. auch wenn das device sie in noch kürzeren abständen liefert.
gruss
andre
Ich hab zwar noch nicht ganz verstanden, wie event-on-change mit min-event-intervall zusammenarbeitet, weil ja eigentlich durch m-e-i Änderungen die kleiner als der Intervall sind, verloren gehen sollten...
Aber hey, es funktioniert genau so, wie Andre es gesagt hat und wie es ja auch soll! ;-)
Vielen Dank für die Hilfe!
Jan
Ich verstehe es so, dass min-event-intervall nach Ablauf des Intervals event-on-change für ein Event aushebelt.
Gibt es also z.B. jede Minute das selbe Event "on", blockierst du das mit event-on-change. Damit bekommst du also nicht mehr jede Minute ein Event "on", sondern nur ein Event wenn sich der Zustand ändert (von on auf off z.b.)
Ist gleichzeitig min-event-intervall gesetzt, wird zwar immer noch das Event jede Minute blockiert, aber in dem eingestellten Intervall wird es einmal zugelassen. Steht min-event-intervall z.B. auf 15 bekommst du alle 15 Minuten ein "on".
Ist jetzt aber nur eine mutmaßung, habe selber nicht mit min-event-intervall gearbeitet.
und wie löse ich das Problem, wenn zwischen hh:59 und (hh+1):02 Uhr ein geplotteter Temperaturwert nicht geplottet werden kann, weil der Sendeabstand des Sensors einfach so lang ist?
Das Problem tritt bei mir in einigen Plots, die stündlich erzeugt werden auf:
(siehe Anhang / see attachement)
Gar nicht?
FileLog muesste dazu das letzte _passende_ Wert _vor_ der bestellten Zeitgrenze zurueckliefern, das beisst sich aber mit der binaeren Suche, insb. wenn in der Datei mehr als ein Wert geloggt wird.
Zitat von: rudolfkoenig schrieb am Do, 15 August 2013 15:02Gar nicht?
Du meinst doch sicher "bis jetzt noch gar nicht", oder? ;)
Moin @ all,
wenn mir jemand hilft, hätte ich eine Lösung, mir fehlen nur ein paar Perl-Kenntnisse, um den Umbau fertigzustellen.
Das Log eines Tages würde dann so aussehen:
[code]
2013-04-21_00:00:00 HK_Regler_Badezimmer battery: ok >>>>> Zeit durch Filelog geaendert <<<<<
2013-04-21_00:00:00 HK_Regler_Badezimmer desiredTemperature: 15.0 >>>>> Zeit durch Filelog geaendert <<<<<
2013-04-21_00:00:00 HK_Regler_Badezimmer valveposition: 0 >>>>> Zeit durch Filelog geaendert <<<<<
2013-04-21_00:00:00 Temp_Sensor_Badezimmer T: 20.00 °C >>>>> Zeit durch Filelog geaendert <<<<<
2013-04-21_02:32:49 Temp_Sensor_Badezimmer T: 20.00 °C
2013-04-21_02:37:55 Temp_Sensor_Badezimmer T: 19.88 °C
2013-04-21_02:43:02 Temp_Sensor_Badezimmer T: 20.00 °C
2013-04-21_02:53:14 Temp_Sensor_Badezimmer T: 20.00 °C
2013-04-21_02:58:15 Temp_Sensor_Badezimmer T: 19.88 °C
2013-04-21_05:00:49 Temp_Sensor_Badezimmer T: 19.88 °C
2013-04-21_05:06:00 Temp_Sensor_Badezimmer T: 19.75 °C
2013-04-21_05:11:09 Temp_Sensor_Badezimmer T: 19.88 °C
2013-04-21_05:16:19 Temp_Sensor_Badezimmer T: 19.88 °C
2013-04-21_05:21:29 Temp_Sensor_Badezimmer T: 19.75 °C
2013-04-21_05:26:31 Temp_Sensor_Badezimmer T: 19.88 °C
2013-04-21_05:31:36 Temp_Sensor_Badezimmer T: 19.75 °C
2013-04-21_06:00:00 HK_Regler_Badezimmer battery: ok >>>>> Zeit durch Filelog geaendert <<<<<
2013-04-21_06:00:00 HK_Regler_Badezimmer desiredTemperature: 15.0 >>>>> Zeit durch Filelog geaendert <<<<<
2013-04-21_06:00:00 HK_Regler_Badezimmer valveposition: 0 >>>>> Zeit durch Filelog geaendert <<<<<
2013-04-21_06:00:00 Temp_Sensor_Badezimmer T: 19.75 °C >>>>> Zeit durch Filelog geaendert <<<<<
2013-04-21_07:08:28 Temp_Sensor_Badezimmer T: 19.75 °C
2013-04-21_07:13:33 Temp_Sensor_Badezimmer T: 19.88 °C
2013-04-21_07:54:34 Temp_Sensor_Badezimmer T: 19.88 °C
2013-04-21_07:59:42 Temp_Sensor_Badezimmer T: 20.00 °C
2013-04-21_08:15:05 Temp_Sensor_Badezimmer T: 20.00 °C
2013-04-21_08:20:16 Temp_Sensor_Badezimmer T: 20.13 °C
2013-04-21_08:25:25 Temp_Sensor_Badezimmer T: 20.00 °C
2013-04-21_08:30:31 Temp_Sensor_Badezimmer T: 20.13 °C
2013-04-21_08:35:39 Temp_Sensor_Badezimmer T: 20.00 °C
2013-04-21_10:02:45 Temp_Sensor_Badezimmer T: 20.00 °C
2013-04-21_10:07:51 Temp_Sensor_Badezimmer T: 20.13 °C
2013-04-21_10:18:08 Temp_Sensor_Badezimmer T: 20.13 °C
2013-04-21_10:23:16 Temp_Sensor_Badezimmer T: 20.25 °C
2013-04-21_10:28:21 Temp_Sensor_Badezimmer T: 20.25 °C
2013-04-21_10:33:26 Temp_Sensor_Badezimmer T: 20.38 °C
2013-04-21_10:38:37 Temp_Sensor_Badezimmer T: 20.38 °C
2013-04-21_10:43:41 Temp_Sensor_Badezimmer T: 20.25 °C
2013-04-21_10:54:08 Temp_Sensor_Badezimmer T: 20.25 °C
2013-04-21_10:59:25 Temp_Sensor_Badezimmer T: 20.13 °C
2013-04-21_12:00:00 HK_Regler_Badezimmer battery: ok >>>>> Zeit durch Filelog geaendert <<<<<
2013-04-21_12:00:00 HK_Regler_Badezimmer desiredTemperature: 15.0 >>>>> Zeit durch Filelog geaendert <<<<<
2013-04-21_12:00:00 HK_Regler_Badezimmer temperature: 19.7 >>>>> Zeit durch Filelog geaendert <<<<<
2013-04-21_12:00:00 HK_Regler_Badezimmer valveposition: 0 >>>>> Zeit durch Filelog geaendert <<<<<
2013-04-21_12:00:00 Temp_Sensor_Badezimmer T: 20.13 °C >>>>> Zeit durch Filelog geaendert <<<<<
2013-04-21_12:03:17 HK_Regler_Badezimmer temperature: 19.3
2013-04-21_14:32:03 Temp_Sensor_Badezimmer T: 20.13 °C
2013-04-21_14:37:09 Temp_Sensor_Badezimmer T: 20.25 °C
2013-04-21_14:42:08 Temp_Sensor_Badezimmer T: 21.63 °C
2013-04-21_14:47:08 Temp_Sensor_Badezimmer T: 22.75 °C
2013-04-21_14:52:12 Temp_Sensor_Badezimmer T: 21.13 °C
2013-04-21_14:57:11 Temp_Sensor_Badezimmer T: 20.50 °C
2013-04-21_15:02:11 Temp_Sensor_Badezimmer T: 20.38 °C
2013-04-21_15:03:06 HK_Regler_Badezimmer temperature: 19.3
2013-04-21_18:00:00 HK_Regler_Badezimmer battery: ok >>>>> Zeit durch Filelog geaendert <<<<<
2013-04-21_18:00:00 HK_Regler_Badezimmer desiredTemperature: 15.0 >>>>> Zeit durch Filelog geaendert <<<<<
2013-04-21_18:00:00 HK_Regler_Badezimmer valveposition: 0 >>>>> Zeit durch Filelog geaendert <<<<<
2013-04-21_18:00:00 Temp_Sensor_Badezimmer T: 20.38 °C >>>>> Zeit durch Filelog geaendert <<<<<
2013-04-21_20:54:26 Temp_Sensor_Badezimmer T: 20.38 °C
2013-04-21_20:59:45 Temp_Sensor_Badezimmer T: 20.25 °C
2013-04-21_21:31:20 Temp_Sensor_Badezimmer T: 20.25 °C
2013-04-21_21:36:34 Temp_Sensor_Badezimmer T: 20.13 °C
2013-04-21_22:34:20 Temp_Sensor_Badezimmer T: 20.13 °C
2013-04-21_22:39:19 Temp_Sensor_Badezimmer T: 20.00 °C
2013-04-21_22:45:24 Temp_Sensor_Badezimmer T: 20.13 °C
[/code]
das Grundgerüst steht, nur mir fehlen die Kenntnisse, wie ich auf vorherige Werte zurückgreife, denn bisher wird das Log jedesmal neu geschrieben, und das kostet Rechenzeit.
Wenn einer helfen mag, im Anhang der Versuch, das ganze zu ändern.
die Datei ist im aktuellen FHEM lauffähig, aber definitiv nicht für den Produktiveinsatz geeignet.
Gruß Joachim
Hi.,
warum Einträge ändern statt um 23:59 und 0:01 zusätzliche zu schreiben - das macht addlog, sie ewiki-Link oben.
=8-)
Moin UliM,
ich kenne Dein addlog, zu der Zeit gab es den min-event-intervall noch nicht, und ich hatte angefangen was eigenes zu Basteln, dass
- das Log klein hält, aber nicht verfälscht (es wird nur geloggt, wenn sich der Eintrag geändert hat, dann aber alter und neuer Wert)
- der Plotabriss durch Zusatzeinträge verhindert wird
- die readings aber trotzdem in FHEM ankommen (für trigger oder notifys)
- immer den aktuellen Wert im Plot anzeigt
mangels Perlkenntnissen musste ich allerdings jedesmal das Logfile neuschreiben, da ich nicht weiss wie man nur die letzte Zeile in einer Datei ändert.
gruß Joachim