Presence-Plot: 24h statt Tag sowie Probleme mit event-on-change-reading

Begonnen von Kristof, 04 Januar 2014, 15:05:01

Vorheriges Thema - Nächstes Thema

Kristof

Hallo Community,

nun habe ich mich schon durch viele Postings hier gewühlt aber entweder falsch gesucht oder die wichtigen Stellen überlesen, jedenfalls habe ich keine Lösung finden können für meine Fragen.
Ausgangsbasis: ich schreibe in ein Log die PRESENCE meines Handys, iPhones und Fernsehers, schreibe aber nur die Statusänderungen mit.

define samsungTV_AN PRESENCE lan-ping 192.168.2.22
attr samsungTV_AN event-on-change-reading state

define HandyKK_AN PRESENCE function {RemoteFritzBox("kk-Nokia")} 120 120
attr HandyKK_AN event-on-change-reading state
define iPad_AN PRESENCE function {RemoteFritzBox("kk-iPad")} 120 120
attr iPad_AN event-on-change-reading state
define FileLog_MobileGeraeteDa FileLog ./log/MobileGeraeteDa-%Y.log HandyKK_AN|iPad_AN|samsungTV_AN
attr FileLog_MobileGeraeteDa logtype text


Das Ergebnis sieht dann so aus:
2014-01-03_19:41:03 iPad_AN absent
2014-01-03_23:14:06 HandyKK_AN present
2014-01-03_23:38:49 samsungTV_AN absent
2014-01-03_23:41:17 samsungTV_AN present
2014-01-03_23:41:42 HandyKK_AN absent
2014-01-03_23:43:42 HandyKK_AN present
2014-01-04_00:14:33 samsungTV_AN absent
2014-01-04_00:19:53 iPad_AN present
2014-01-04_00:35:57 iPad_AN absent
2014-01-04_00:43:59 iPad_AN present
2014-01-04_00:46:00 iPad_AN absent
2014-01-04_02:06:23 iPad_AN present
2014-01-04_02:08:23 iPad_AN absent
2014-01-04_03:28:46 iPad_AN present
2014-01-04_03:30:47 iPad_AN absent
2014-01-04_04:39:05 iPad_AN present
2014-01-04_04:41:06 iPad_AN absent
2014-01-04_07:11:48 iPad_AN present
2014-01-04_07:13:48 iPad_AN absent
2014-01-04_08:04:02 iPad_AN present
2014-01-04_08:06:03 iPad_AN absent
2014-01-04_08:24:07 HandyKK_AN absent
2014-01-04_09:14:22 iPad_AN present
2014-01-04_09:16:22 iPad_AN absent
2014-01-04_10:00:35 iPad_AN present
2014-01-04_10:02:35 iPad_AN absent
2014-01-04_10:18:39 iPad_AN present
2014-01-04_10:20:40 iPad_AN absent
2014-01-04_10:30:42 iPad_AN present
2014-01-04_10:32:43 iPad_AN absent
2014-01-04_11:45:04 iPad_AN present
2014-01-04_11:47:04 iPad_AN absent
2014-01-04_12:55:23 HandyKK_AN present
2014-01-04_12:59:24 iPad_AN present
2014-01-04_13:00:19 samsungTV_AN present
2014-01-04_13:03:28 iPad_AN absent
2014-01-04_14:14:27 iPad_AN present
2014-01-04_14:16:28 iPad_AN absent


Dann habe ich einen gplot aus diesen Daten erstellt:
# Created by FHEM/98_SVG.pm, 2014-01-04 14:34:11
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<TL>'
set ytics
set y2tics
set grid
set ylabel ""
set y2label ""
set yrange 0:1

#FileLog 3:HandyKK_AN.*:0:$fld[2]=~"present"?1:0
#FileLog 3:iPad_AN.*:0:$fld[2]=~"present"?1:0
#FileLog 3:samsungTV_AN.*:0:$fld[2]=~"present"?1:0

plot "<IN>" using 1:2 axes x1y1 title 'Handy' ls l0 lw 1 with steps,\
     "<IN>" using 1:2 axes x1y1 title 'iPad' ls l1 lw 1 with steps,\
     "<IN>" using 1:2 axes x1y1 title 'TV' ls l2fill lw 1 with steps


Das Ergebnis ist etwas ernüchternd (siehe Dateianhang - es ist mir nicht gelungen hier in den Text ein Bild 'reinzukopieren, sorry)
Daraus ergeben sich mir ein paar Fragen:
1.) wo stelle ich ein, dass das Diagramm nicht den heutigen Tag, sondern z.B. die letzten 24h anzeigt?
2.) weil ich ja nur die Statusänderungen mitschreibe, fehlen hier "Startwerte" und "aktuelle Werte", sprich: die Diagramme beginnen erst bei der ersten StatusÄNDERUNG im dargestellten Zeitraum und enden bei der jüngsten Statusänderung. Dadurch sieht man im konkreten Beispiel nicht, dass "Handy" bis 8:15 anwesend war und dass der Fernseher aktuell angeschaltet ist :-( Gibt es hierfür eine pfiffige Lösung?

Ihr dürft mich gerne an alte Postings verweisen, die diese Fragen beantworten - dann sehe ich ja auch gleich, welche Suchworte ich hätte eingeben müssen...

Danke und Gruß,
Kristof

Joachim

Moin Kristof,
OT
Zitatich schreibe in ein Log die PRESENCE meines Handys, iPhones und Fernsehers,
Läuft Dein Fernseher zwischendruch weg?

Nun zu Deinen Fragen:
1. endPlotnow event-min-interval event-min-interval
2. AddLog ist hier der richtige Suchbegriff im Forum / Wiki (behebt aber nur das Problem der Anfangs werte)
2a. event-min-interval event-min-interval für die Endwerte

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

justme1968

schau nach endPlotNow und nach min-event-intervall. beides sollte dich weiterbringen.

das  abhängig von der zoomstufe löcher in den plots sind lässt sich noch nicht elegant  vermeiden. regelnässig z.b alle halbe Stunde einen wert zu schreiben hilft aber.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Kristof

Danke für die raschen Antworten.
Jetzt spiele ich gerade mit endPlotToday und endPlotNow, ABER: nur endPlotToday kann ich per attr WEB endPlotToday 1 eintragen, endPlotToday finde ich zwar in der reference, aber weder im Dropdown des Web-UI noch kann ich es manuell eintragen ohne dass eine entsprechende Fehlermeldung kommt?! Was mache ich falsch?

LG
Kristof

P.S.: @Joachim: nein, mein Fernseher ist relativ ortsgebunden *lach
Aber ich dachte mir, das wäre eine ganz nette Möglichkeit, mein TV-Konsumverhalten zu überprüfen...

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

Kristof

Sodele, habe gerade ein update durchgeführt. Wow, hätte nicht gedacht, dass meine Problemstellungen so "leading edge" sind, dass sie offenbar in den letzten Tagen gelöst wurden, denn ich habe erst vor 5 Tagen mein FHEM installiert.
Jedenfalls klappt das mit dem attr WEB endPlotNow 1 jetzt einwandfrei - danke!
Und wenn ich diesen Code hier richtig geschrieben habe und die Syntax richtig interpretiere, dann
- lese ich alle 2 Minuten den Status aus
- generiere ich auf jeden Fall alle 5 Minuten einen Event (sprich: schreibe den Status ins Log)
- generiere ich zusätzlich (?) zu den "alle 5 Minuten" auch bei jeder Statusänderung einen Event

define HandyKK_AN PRESENCE function {RemoteFritzBox("kk-Nokia")} 120 120
attr HandyKK_AN event-min-interval state:300
attr HandyKK_AN event-on-change-reading state


Ich danke Euch für Eure Hilfe!

Kristof

Puschel74

Hallo,

Zitatdenn ich habe erst vor 5 Tagen mein FHEM installiert.

Tja. FHEM lebt  ;)

Aber die 5.5-Release ist ja auch nur der damalige Stand.
Aktuell wird FHEM nur durch ein update gehalten.
Selbst nach einer Neu-Installation.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.