Plots "auffüllen"

Begonnen von Jaydee, 14 August 2013, 15:27:07

Vorheriges Thema - Nächstes Thema

Jaydee

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

UliM

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

Gruss, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Jaydee

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

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Jaydee

*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

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Jaydee

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

TeeVau

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.
FHEM 5.8 dev (virtualisiert) / FBF 7390 (CUL 868MHz V 1.51 / panStick (AVR1))
FS20: fs20di,fs20pira,fs20sm8,fs20st2,fs20tfk,fs20ue1,fs20ws1
panStamp (AVR1): RGB Multi von ext23, 1W-DSxxxx, I/O Sketch, Spritzpumpe
Multimedia: Panasonic TV (VIERA), Kodi, Yamaha RX-V781, LMS
Sonstiges: XiaomiFlowerSen

betateilchen

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)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

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.

betateilchen

Zitat von: rudolfkoenig schrieb am Do, 15 August 2013 15:02Gar nicht?

Du meinst doch sicher "bis jetzt noch gar nicht", oder? ;)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Joachim

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 &deg;C     >>>>> Zeit durch Filelog geaendert <<<<<
2013-04-21_02:32:49 Temp_Sensor_Badezimmer T: 20.00 &deg;C
2013-04-21_02:37:55 Temp_Sensor_Badezimmer T: 19.88 &deg;C
2013-04-21_02:43:02 Temp_Sensor_Badezimmer T: 20.00 &deg;C
2013-04-21_02:53:14 Temp_Sensor_Badezimmer T: 20.00 &deg;C
2013-04-21_02:58:15 Temp_Sensor_Badezimmer T: 19.88 &deg;C
2013-04-21_05:00:49 Temp_Sensor_Badezimmer T: 19.88 &deg;C
2013-04-21_05:06:00 Temp_Sensor_Badezimmer T: 19.75 &deg;C
2013-04-21_05:11:09 Temp_Sensor_Badezimmer T: 19.88 &deg;C
2013-04-21_05:16:19 Temp_Sensor_Badezimmer T: 19.88 &deg;C
2013-04-21_05:21:29 Temp_Sensor_Badezimmer T: 19.75 &deg;C
2013-04-21_05:26:31 Temp_Sensor_Badezimmer T: 19.88 &deg;C
2013-04-21_05:31:36 Temp_Sensor_Badezimmer T: 19.75 &deg;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 &deg;C     >>>>> Zeit durch Filelog geaendert <<<<<
2013-04-21_07:08:28 Temp_Sensor_Badezimmer T: 19.75 &deg;C
2013-04-21_07:13:33 Temp_Sensor_Badezimmer T: 19.88 &deg;C
2013-04-21_07:54:34 Temp_Sensor_Badezimmer T: 19.88 &deg;C
2013-04-21_07:59:42 Temp_Sensor_Badezimmer T: 20.00 &deg;C
2013-04-21_08:15:05 Temp_Sensor_Badezimmer T: 20.00 &deg;C
2013-04-21_08:20:16 Temp_Sensor_Badezimmer T: 20.13 &deg;C
2013-04-21_08:25:25 Temp_Sensor_Badezimmer T: 20.00 &deg;C
2013-04-21_08:30:31 Temp_Sensor_Badezimmer T: 20.13 &deg;C
2013-04-21_08:35:39 Temp_Sensor_Badezimmer T: 20.00 &deg;C
2013-04-21_10:02:45 Temp_Sensor_Badezimmer T: 20.00 &deg;C
2013-04-21_10:07:51 Temp_Sensor_Badezimmer T: 20.13 &deg;C
2013-04-21_10:18:08 Temp_Sensor_Badezimmer T: 20.13 &deg;C
2013-04-21_10:23:16 Temp_Sensor_Badezimmer T: 20.25 &deg;C
2013-04-21_10:28:21 Temp_Sensor_Badezimmer T: 20.25 &deg;C
2013-04-21_10:33:26 Temp_Sensor_Badezimmer T: 20.38 &deg;C
2013-04-21_10:38:37 Temp_Sensor_Badezimmer T: 20.38 &deg;C
2013-04-21_10:43:41 Temp_Sensor_Badezimmer T: 20.25 &deg;C
2013-04-21_10:54:08 Temp_Sensor_Badezimmer T: 20.25 &deg;C
2013-04-21_10:59:25 Temp_Sensor_Badezimmer T: 20.13 &deg;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 &deg;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 &deg;C
2013-04-21_14:37:09 Temp_Sensor_Badezimmer T: 20.25 &deg;C
2013-04-21_14:42:08 Temp_Sensor_Badezimmer T: 21.63 &deg;C
2013-04-21_14:47:08 Temp_Sensor_Badezimmer T: 22.75 &deg;C
2013-04-21_14:52:12 Temp_Sensor_Badezimmer T: 21.13 &deg;C
2013-04-21_14:57:11 Temp_Sensor_Badezimmer T: 20.50 &deg;C
2013-04-21_15:02:11 Temp_Sensor_Badezimmer T: 20.38 &deg;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 &deg;C     >>>>> Zeit durch Filelog geaendert <<<<<
2013-04-21_20:54:26 Temp_Sensor_Badezimmer T: 20.38 &deg;C
2013-04-21_20:59:45 Temp_Sensor_Badezimmer T: 20.25 &deg;C
2013-04-21_21:31:20 Temp_Sensor_Badezimmer T: 20.25 &deg;C
2013-04-21_21:36:34 Temp_Sensor_Badezimmer T: 20.13 &deg;C
2013-04-21_22:34:20 Temp_Sensor_Badezimmer T: 20.13 &deg;C
2013-04-21_22:39:19 Temp_Sensor_Badezimmer T: 20.00 &deg;C
2013-04-21_22:45:24 Temp_Sensor_Badezimmer T: 20.13 &deg;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
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

UliM

Hi.,
warum Einträge ändern statt um 23:59 und 0:01 zusätzliche zu schreiben - das macht addlog, sie ewiki-Link oben.
=8-)
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Joachim

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
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232