[FHEM-Tablet-UI] Chart

Begonnen von RoBra81, 18 Dezember 2015, 13:42:10

Vorheriges Thema - Nächstes Thema

funkner

Ich habe letzte Woche ein Chart mit 2 Kurven erstellt.
Die Kurven zeigen den Verlauf der letzten 14 Tage.
Es funktionierte super bis zum Monatswechsel.
Seit dem werden nur Werte ab dem 01.03 angezeigt.
Die Chartwerte kommen aus einem monatsweisen Filearchiv. Es wird also jeden Monat eine neue Datei angelegt.
In FHEM macht diese Ansicht keine Probleme. Dort wird der Chart monatsübergreifend angezeigt.

Hat jemand einen Tipp oder liegt das an dem Chart-Device?
Kann jemand das Verhalten bestätigen?

bjoernbo

Die Werte kommen doch aus einem LogFile. Findet die Protokollierung monatlich statt? Sprich wird für jeden Monat ein neues Logfile erstellt?

Ich meine das geht nur wenn du die Wert in ein "Jahreslog" schreibst!
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

funkner

Zitat von: bjoernbo am 02 März 2016, 14:33:22
Die Werte kommen doch aus einem LogFile. Findet die Protokollierung monatlich statt? Sprich wird für jeden Monat ein neues Logfile erstellt?

Ich meine das geht nur wenn du die Wert in ein "Jahreslog" schreibst!
Ja, die Werte kommen aus einem logfile. Dieses wird jeden Monat neu erstellt. Bei einem Jahreslog wäre am Jahreswechsel das identische Problem.

eki

Zitat von: funkner am 02 März 2016, 10:08:40
Ich habe letzte Woche ein Chart mit 2 Kurven erstellt.
Die Kurven zeigen den Verlauf der letzten 14 Tage.
Es funktionierte super bis zum Monatswechsel.
Seit dem werden nur Werte ab dem 01.03 angezeigt.
Die Chartwerte kommen aus einem monatsweisen Filearchiv. Es wird also jeden Monat eine neue Datei angelegt.
In FHEM macht diese Ansicht keine Probleme. Dort wird der Chart monatsübergreifend angezeigt.

Hat jemand einen Tipp oder liegt das an dem Chart-Device?
Kann jemand das Verhalten bestätigen?

Kannst Du mal ein paar Infos dazu schicken
- Definition des Charts
- Ausschnitt aus dem Logfile
- Definition des Logfiles aus der fhem.cfg

Dann werde ich mir das mal anschauen.

funkner

Vielen Dank, dass du dir das mal anschaust.   ::)

Chartdefinition in Tablet UI:
<!--Chart-->
<li data-row="4" data-col="2" data-sizex="5" data-sizey="2">
<header>Temperaturen</header>
<div class="normal"
data-type="chart"
data-logdevice='["FileLog_AussenTemp","FileLog_InnenTemp"]'
data-columnspec='["3:Event_AussenTemp","3:Event_InnenTemp"]'
data-style='["ftui l0","ftui l1"]'
data-ptype='["lines","lines"]'
data-uaxis='["primary","secondary"]'
data-legend='["Drau&szlig;en", "Innen"]'
data-yunit="&deg;C"
data-ytext="Temperatur"
data-yticks="auto"
data-minvalue="-15"
data-maxvalue="35"
data-yunit_sec="&deg;C"
data-ytext_sec="Temperatur"
data-minvalue_sec="20"
data-maxvalue_sec="30"
data-daysago_start="7"
data-daysago_end="-1"
data-crosshair="true"
data-cursorgroup="1"
data-scrollgroup="1"
data-showlegend="true"
data-width="100%"
data-height="100%"
data-xticks="1440">
</div>
</li>
<!--Chart-->


Ausschnitt aus einem der Logfiles (Sind beide identisch angelegt).
Die Eintrage reichen bis zum 01.03.2016 zurück. Der 29.02.2016 liegt in der "Februar-Datei"
2016-03-05_19:32:12 Event_AussenTemp 5.3
2016-03-05_19:37:12 Event_AussenTemp 5.2
2016-03-05_19:42:12 Event_AussenTemp 5.1
2016-03-05_19:47:12 Event_AussenTemp 5
2016-03-05_20:32:13 Event_AussenTemp 4.9
2016-03-05_20:57:13 Event_AussenTemp 4.8
2016-03-05_21:02:13 Event_AussenTemp 4.9
2016-03-05_21:07:13 Event_AussenTemp 4.8
2016-03-05_21:17:14 Event_AussenTemp 4.7
2016-03-05_21:22:14 Event_AussenTemp 4.8
2016-03-05_21:27:14 Event_AussenTemp 4.7
2016-03-05_21:32:14 Event_AussenTemp 4.6
2016-03-05_21:37:14 Event_AussenTemp 4.7
2016-03-05_21:42:14 Event_AussenTemp 4.6
2016-03-05_22:07:14 Event_AussenTemp 4.5
2016-03-05_22:17:14 Event_AussenTemp 4.4
2016-03-05_22:27:14 Event_AussenTemp 4.3
2016-03-05_22:32:15 Event_AussenTemp 4.2
2016-03-05_22:37:15 Event_AussenTemp 4.1
2016-03-05_22:47:15 Event_AussenTemp 4
2016-03-05_23:12:15 Event_AussenTemp 4.1
2016-03-05_23:27:15 Event_AussenTemp 4


Filelog Definition aus der fhem.cfg:
# AussenTemp LOGGING
define Event_AussenTemp dummy
attr Event_AussenTemp event-on-change-reading state
define FileLog_AussenTemp FileLog ./log/AussenTemp-%Y-%m.log Event_AussenTemp

# InnenTemp LOGGING
define Event_InnenTemp dummy
attr Event_InnenTemp event-on-change-reading state
define FileLog_InnenTemp FileLog ./log/InnenTemp-%Y-%m.log Event_InnenTemp


https://forum.fhem.de/index.php?topic=18203.0
Ich glaube, ich habe meine Antwort, während des erstellens dieses Nachricht selbst gefunden...  :-\

eki

Du schreibst ja oben, dass es in Fhem geht und nur im chart_widget Probleme macht, da swurde gegen die Infos im Link sprechen.

Grundsätzlich holt sich das chart_widget die Daten fuer die Plots von Fhem per Get mit den in der Konfiguration gesetzten Parametern fuer Columnspec etc. Insofern fuerchte ich dass es erst mal nicht funktioniert. Ich mach mir mal Gedanken ob ich das im chart_widget irgendwie abfangen kann, das wird aber sicher ein bisschen dauern.

funkner

Sorry, das habe ich in meiner letzten Nachricht nicht berichtigt. Bei genauerem hinsehen stellte ich fest, dass es in fhem auch nicht funktioniert. In fhem wird quasi der letzte Monat bis Monatsende angezeigt (zb bis 29.02).  Wobei tablet ui den plot vom 01.03 ab anfängt anzuzeigen. Das hat mich wohl in die irre leiten lassen. Es ist momentan anscheinend so, dass die plot Ansicht aus maximal einer Datei geladen werden kann.
Muss wohl doch mal auf dblog umsteigen. Dann ist das normalerweise kein Problem mehr.

Mario67

Bei mir werden unter FHEM die Plots nahtlos aus Monats-Logfiles erzeugt (siehe Beispiel).

Gruß,
Mario
FHEM auf Raspberry Pi 4 mit CUL868, WMBUS,
FS20 ST, FS20 AS4-3, FS20 SU-2, FS20 DF, 1-Wire + RS-232: AB Electronics Com Pi RS232, Brandmelder + Fenster: AB Electronics IO Pi 32
BUDERUS GB142 über EMS/AVR-NET-IO, WESTAFLEX WAC250 über RS232, MySensors
mit fhem.cfg & includes glücklich

funkner

#68
Bin ein wenig überrascht. Kannst du mir evtl deine plot konfig posten? Dein filelog define könnte auch helfen, den Fehler zu finden. Hast du eine spezielle Einstellung vorgenommen?

Mario67

Kein Problem. Mit wenig Aufwand, deshalb komplett.

Gruß,
Mario

Pool_Temperature_Plot.gplot

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 '<L1>'
set ytics
set y2tics
set grid y2tics
set ylabel ""
set y2label "Temperatur in °C"

#Pool_Temperature_FileLog 4:Pool_Temperature.temperature\x3a:0:
#Aussen_Temperatur_Nord_FileLog 4:Aussen_Temperatur_Nord.temperature\x3a:0:

plot "<IN>" using 1:2 axes x1y2 title 'Temperatur in °C' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Aussentemperatur in °C' ls l1 lw 1 with lines


POOL.cfg
#Pooltemperatur
define Pool_Temperature OWDevice 28.3F6C48050000 600
attr Pool_Temperature IODev OWFS_Instance
attr Pool_Temperature alias Temperatur Pool
attr Pool_Temperature comment DS18B20_3F6C48050000
attr Pool_Temperature group Pool
attr Pool_Temperature icon icoTempWasser
attr Pool_Temperature model DS18B20
attr Pool_Temperature room Pool
attr Pool_Temperature stateFormat {sprintf("%.1f C", ReadingsVal("Pool_Temperature","temperature",0))}
#attr Pool_Temperature stateFormat {sprintf("Temperatur: %.2f C", ReadingsVal("Pool_Temperature","temperature",0))}

# log file
define Pool_Temperature_FileLog FileLog ./log/Pool_Temperature-%Y.log Pool_Temperature
attr Pool_Temperature_FileLog logtype Pool_Temperature_Plot:Plot,text:Text
attr Pool_Temperature_FileLog room x_Pool

# plot
define Pool_Temperature_Plot SVG Pool_Temperature_FileLog:Pool_Temperature_Plot:CURRENT
attr Pool_Temperature_Plot label 'Temperatur Pool'
attr Pool_Temperature_Plot room Pool
FHEM auf Raspberry Pi 4 mit CUL868, WMBUS,
FS20 ST, FS20 AS4-3, FS20 SU-2, FS20 DF, 1-Wire + RS-232: AB Electronics Com Pi RS232, Brandmelder + Fenster: AB Electronics IO Pi 32
BUDERUS GB142 über EMS/AVR-NET-IO, WESTAFLEX WAC250 über RS232, MySensors
mit fhem.cfg & includes glücklich

funkner

Zitat von: Mario67 am 07 März 2016, 00:38:46
Kein Problem. Mit wenig Aufwand, deshalb komplett.

Gruß,
Mario

POOL.cfg

# log file
define Pool_Temperature_FileLog FileLog ./log/Pool_Temperature-%Y.log Pool_Temperature
attr Pool_Temperature_FileLog logtype Pool_Temperature_Plot:Plot,text:Text
attr Pool_Temperature_FileLog room x_Pool

# plot
define Pool_Temperature_Plot SVG Pool_Temperature_FileLog:Pool_Temperature_Plot:CURRENT
attr Pool_Temperature_Plot label 'Temperatur Pool'
attr Pool_Temperature_Plot room Pool

Die Zeile
define Pool_Temperature_FileLog FileLog ./log/Pool_Temperature-%Y.log Pool_Temperature
ist so deklariert, dass du ein Jahreslog-File erstellst. Deshalb funktioniert es bei dir auch das ganze Jahr, bis auf den Jahreswechsel. Schau doch mal in der Wochenansicht die Woche vom 28.12.2015 bis 03.01.2016 an. Dort solltest du das gleiche Problem bekommen.

Mario67

Das war definitiv zu spät...
Sorry, da habe ich wohl blind das falsche Beispiel genommen. Ich suche heute Abend nochmal die Definition für das erste Beispiel heraus.

Gruß,
Mario
FHEM auf Raspberry Pi 4 mit CUL868, WMBUS,
FS20 ST, FS20 AS4-3, FS20 SU-2, FS20 DF, 1-Wire + RS-232: AB Electronics Com Pi RS232, Brandmelder + Fenster: AB Electronics IO Pi 32
BUDERUS GB142 über EMS/AVR-NET-IO, WESTAFLEX WAC250 über RS232, MySensors
mit fhem.cfg & includes glücklich

Mario67

Peinlich: Ich bin da wohl etwas durcheinander gekommen und habe aktuelle Jahres-Logfile und Plots (basierend auf speedtest) mit einer alten Lösung (basierend auf Python-Scripts) mit monatlichen Log-Files vermischt.  :-[
Ja, bei mir ist es natürlich auch so, dass Plots jeweils nur bis zum Monatsende gezeichnet werden wenn sie auf monatlichen Log-Files basieren.

Gruß,
Mario
FHEM auf Raspberry Pi 4 mit CUL868, WMBUS,
FS20 ST, FS20 AS4-3, FS20 SU-2, FS20 DF, 1-Wire + RS-232: AB Electronics Com Pi RS232, Brandmelder + Fenster: AB Electronics IO Pi 32
BUDERUS GB142 über EMS/AVR-NET-IO, WESTAFLEX WAC250 über RS232, MySensors
mit fhem.cfg & includes glücklich

RomanticBoy83

#73
Hallo Community
Ich versuche mich an einer neuen Oberfläche und möchte nun auch meine Plots darstellen. In Fhem laufen diese mit LogProxy aus einem FileLog. Diese sollen nun auch auf TabletUI mithilfe von chart implementiert werden. Für einfache Integer-Werte bekomme ich das auch hin.

Problem:
Ich nutze regExp im gPlot-File um aus "on" und "off" ein integer zu erhalten. Wie dies mit dem chart-widget möglich ist habe ich jedoch noch nicht herauslesen können.

Ich hatte es ebenfalls mit paste&copy aus dem gPlot-File versucht und erhalte leider keine Kurve mit LogProxy:
<div
data-type="chart"
data-logdevice="logproxy" <--das Device heißt bei mir auch so
data-columnspec='["FileLog:FileLog_heizung:4:heizung.Aussentemperatur\x3a::"]'
data-style='["ftui l2"]'
data-ptype='["lines"]'
data-uaxis='["primary"]'
data-legend='["außen"]'
data-yunit="°C"
data-ytext="Temperatur"
data-minvalue="-25"
data-maxvalue="50"
data-yunit_sec=""
data-ytext_sec="Pumpe"
data-yticks="auto"
data-minvalue_sec="0"
data-maxvalue_sec="1000"
data-daysago_start="0"
data-daysago_end="-1"
data-crosshair="true"
data-cursorgroup="1"
data-scrollgroup="1"
data-showlegend="true"
data-xticks="auto"
data-height="auto">
</div>

eki

kannst Du mal einen Ausschnitt aus Dem Logfile und dem gplot File Posten.