Autor Thema: FTUI Neue Version chart_widget  (Gelesen 82967 mal)

Offline eki

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1092
Antw:FTUI Neue Version chart_widget
« Antwort #525 am: 29 März 2020, 15:00:16 »
Bisher geht das nicht. Einige der Parameter können aus FHEM readings gefüllt werden (z.B. data-max_value). Wäre Dir geholfen, wenn man auch die Start- und Endwerte für die X-Achse aus Readings holen könnte?
Wenn ich Deine Frage richtig verstehe, dann möchtest Du alle Werte, die im Logfile sind im Chart sehen, falls nicht, musst Du mir das etwas genauer erklären.

Offline romakrau

  • Jr. Member
  • **
  • Beiträge: 55
Antw:FTUI Neue Version chart_widget
« Antwort #526 am: 29 März 2020, 15:38:17 »
Danke für Deine Antwort. Ich dachte an die Möglichkeit aus dem Log-file das Anfangs- und das Enddatum der Einträge zu extrarieren und damit die Parameter daysago.... zu füllen. Zweck wäre ein selbstständig wachsendes Diagramm. Das mit den readings müsste ich mir mal anschauen. Hättest du vielleicht ein Beispiel, denn mit dem regex stehe ich noch etwas auf dem Kriegsfuss.
Gruß
Roman

Offline eki

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1092
Antw:FTUI Neue Version chart_widget
« Antwort #527 am: 29 März 2020, 15:56:11 »
Das mit den Readings ist relativ einfach. Mal angenommen, es gäbe in FHEM ein Device mit Namen A und dieses Device hätte ein Reading B, in dem die Zahl 10 als Wert steht, dann könnte man data-maxvalue="A:B" setzen und das Chart würden den Maximalwert für die X-Achse entsprechend dem Reading setzen (aktuell eben 10). Im Fall der X-Achse könnte ich so etwas einbauen. In FHEM müssten dann Readings (userreading) gefüllt werden, die die entsprechenden Daten bereitstellen.
Für Deinen Fall könntest Du mal probieren, ob data-daysago_end="now" zumindest beim Ende das macht, was Du möchtest (der Anfang des Logfiles sollte sich ja nicht ändern).

Offline romakrau

  • Jr. Member
  • **
  • Beiträge: 55
Antw:FTUI Neue Version chart_widget
« Antwort #528 am: 29 März 2020, 17:36:04 »
Das Logfile lässt sich ja dynamisch über die Periode verschieben. Ich habe z.B. Raumdaten je KW aufgezeichnet. So ist bei der aktuellen Datei das Ende immer now aber der Anfang ist now - n Tage. Mal schauen wie ich das vieleicht gereglt bekommen. Danke erstmal für deine Hilfe.

Offline eki

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1092
Antw:FTUI Neue Version chart_widget
« Antwort #529 am: 30 März 2020, 12:04:20 »
OK, ich glaube ich habe es jetzt verstanden, denke ich. Du möchtest, dass der Inhalt des Charts quasi nach links heraus geschoben wird, wenn rechts neue Werte erscheinen (stimmt das?).
Das geht bisher nicht (mit now als daysago_end würde das Chart quasi immer weiter zusammen gestaucht, weil der Anfang ja fest bleibt), ich werde mir mal Gedanken machen (sollte kein allzu großer Aufwand sein, z.B. so wie  von Dir vorgeschlagen, "now - x", wobei x eigentlich dann alles sein kann, was relative Werte betrifft z.B. now - 3w wäre dann 3 wochen vor "jetzt" und das chart würde eine drei Wochen Periode "durchschieben") und das versuchen einzubauen.

Offline romakrau

  • Jr. Member
  • **
  • Beiträge: 55
Antw:FTUI Neue Version chart_widget
« Antwort #530 am: 30 März 2020, 12:13:41 »
Tja habe immer etwas Schwierigkeiten ich verstänlich zu machen. Links heraus schieben trifft es nicht ganz. Der Anfang sollte dem Datum des ersten Logfile Eintrages entsprechend. z.b. Erstes Datum 01.01.2020 (bleibt fix) Logfile wächst nach rechts bis now. Würde mch freuen wenn es klappt. Auf jeden Fall schon mal Dank für deine Anworten.
Gruß Roman

Nachtrag: Müsste grob gesprochen sowas wie daysago_start = now - erstes_datum_in logfile werden. Könnte vielleicht ein neuer Parameter werden?
« Letzte Änderung: 30 März 2020, 12:22:32 von romakrau »

Offline eki

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1092
Antw:FTUI Neue Version chart_widget
« Antwort #531 am: 30 März 2020, 15:48:56 »
Ich hab mir das noch mal angeschaut, es muss (hoffentlich) gar nichts am Code geändert werden (ich weiß eben auch nicht mehr alles auswendig obwohl ich das alles selbst verbrochen habe  :-\). Folgendes ist zu beachten:

1. Du musst data-device richtig setzen. Hier sollte das Device stehen, welches die Readings erzeugt (und ändert). Nur dann bekommt das Chart Events mit, die durch Änderungen der Readings von FHEM generiert werden und kann sich atualisieren, sprich weiterschieben.
2. Es gibt ja bereits Zeitangaben, die relativ zu "now" sind. Nämlich eigentlich fast alle Optionen für data-daysago... mit Außnahme der absoluten Zeitagaben als Zeitstring (z.B. "2013-08-13T00:00:00"). Wenn Du also z.B.
data-daysago_start="3h"
data-daysago_end="now"
setzt, dann zeigt das Chat die Zeit von vor 3 Stunden bis jetzt. Wenn immer sich das Reading ändert und ein neuer Wert des Readings ins Logfile geschrieben wird, dann erneuert sich das Chart automatisch und passt sich dann wieder auf die letzten 3 Stunden an. Wenn Du statt "3h" "3H" setzt, dann wird gerundet auf ganze Stunden, das Ganze wird dann nur einmal pro Stunde um eine ganze Stunde geschoben.
3. Wenn Du nicht willst, dass nur in ganzen Tagen gerechnet wird (und dann nur einmal am Tag geschoben wird), dann musst Du noch
data-nofulldays="true"
setzen.
Statt "h" kannst Du auch "d" "w" "m" und "y" setzen, dann sind die Zeitangaben eben in Tagen, Wochen, Monaten oder Jahren.
« Letzte Änderung: 30 März 2020, 15:51:08 von eki »

Offline romakrau

  • Jr. Member
  • **
  • Beiträge: 55
Antw:FTUI Neue Version chart_widget
« Antwort #532 am: 30 März 2020, 15:59:21 »
Hallo Eki,
ist schon verstanden. Ich probiere es einfach noch etwas. Danke für die Antworten.
Gruß
Roman

Offline Lichti

  • Full Member
  • ***
  • Beiträge: 288
Antw:FTUI Neue Version chart_widget
« Antwort #533 am: 01 April 2020, 12:19:54 »
Hab mal den Parameter "data-xticks_round" auf "auto" gesetzt. Die Darstellung hiermit gefällt mir sehr gut.
Allerdings wird mit dieser Einstellung das Datum unten rechts mit der Zeit überschrieben.
Lasse ich "data-xticks_round" weg, passiert das nicht.

Online TWART016

  • Hero Member
  • *****
  • Beiträge: 1003
Antw:FTUI Neue Version chart_widget
« Antwort #534 am: 23 April 2020, 22:38:52 »
Hallo,

kann wir jemand sagen wie ich die roten Werte als Linie bekomme, also wie die anderen und nicht jeder Wert von unten nach oben führend und zurück?

Edit:
<div data-type="chart"
data-device="Xiaomi_AirPurifier3_slave"
data-logdevice="Xiaomi_AirPurifier3_slave_FileLog"
data-title="Xiaomi Air Purifier"
data-title_class="myWhite"
data-height="420px"
data-ptype="lines"
data-minvalue="15"
data-maxvalue="60"
data-minvalue_sec="0"
data-maxvalue_sec="40"
data-yunit=" °C / %"
data-yunit_sec=" µg/m³"
data-yticks="5"
data-yticks_sec="2"
data-xticks="120"
data-nofulldays="true"
data-daysago_start="-6H"
data-columnspec='["4:temperature","4:humidity","4:pm25","4:pm25_average"]'
data-uaxis='["primary","primary","secondary","secondary"]'
data-style='["ftui l0dot","ftui l1dot","ftui l2dot","ftui l3dot"]'
data-legend='["Temperature","Luftfeuchtigkeit","pm2.5","pm2.5 average"]'
data-cursorgroup="1"
data-crosshair="true"
data-showlegend="true"
data-show_both_axes="false"
class="fullsize"
></div>
« Letzte Änderung: 24 April 2020, 22:10:00 von TWART016 »
Intel NUC, Raspberry Pi,CUL 433+868, JeeLink, Uniroll, LD382/LD686 + WifiLight, Eventghost, Tablet UI, Homekit/Homebridge/Siri, Alexa, Squeezebox, Onkyo, MAX, Harmony, KODI, Winconnect, Geofancy, Nmap, Sysmon, Telegram

Offline amenomade

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6034
Antw:FTUI Neue Version chart_widget
« Antwort #535 am: 24 April 2020, 23:23:06 »
Hallo,

kann wir jemand sagen wie ich die roten Werte als Linie bekomme, also wie die anderen und nicht jeder Wert von unten nach oben führend und zurück?

Edit:
<div data-type="chart"
data-device="Xiaomi_AirPurifier3_slave"
data-logdevice="Xiaomi_AirPurifier3_slave_FileLog"
data-title="Xiaomi Air Purifier"
data-title_class="myWhite"
data-height="420px"
data-ptype="lines"
data-minvalue="15"
data-maxvalue="60"
data-minvalue_sec="0"
data-maxvalue_sec="40"
data-yunit=" °C / %"
data-yunit_sec=" µg/m³"
data-yticks="5"
data-yticks_sec="2"
data-xticks="120"
data-nofulldays="true"
data-daysago_start="-6H"
data-columnspec='["4:temperature","4:humidity","4:pm25","4:pm25_average"]'
data-uaxis='["primary","primary","secondary","secondary"]'
data-style='["ftui l0dot","ftui l1dot","ftui l2dot","ftui l3dot"]'
data-legend='["Temperature","Luftfeuchtigkeit","pm2.5","pm2.5 average"]'
data-cursorgroup="1"
data-crosshair="true"
data-showlegend="true"
data-show_both_axes="false"
class="fullsize"
></div>
Wie sehen die Werte in der Log aus?
FHEM 5.9 Pi 3, EchoDot, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Online TWART016

  • Hero Member
  • *****
  • Beiträge: 1003
Antw:FTUI Neue Version chart_widget
« Antwort #536 am: 25 April 2020, 01:08:54 »
z.B.
2020-04-23_22:35:02 Xiaomi_AirPurifier3_slave speed: 390
2020-04-23_22:35:02 Xiaomi_AirPurifier3_slave pm25: 12
2020-04-23_22:35:02 Xiaomi_AirPurifier3_slave temperature: 23.5
2020-04-23_22:35:02 Xiaomi_AirPurifier3_slave humidity: 38
2020-04-23_22:30:02 Xiaomi_AirPurifier3_slave pm25_average: 1
2020-04-23_22:30:02 Xiaomi_AirPurifier3_slave speed: 390
2020-04-23_22:30:02 Xiaomi_AirPurifier3_slave pm25: 21
2020-04-23_22:30:02 Xiaomi_AirPurifier3_slave temperature: 23.5
2020-04-23_22:30:02 Xiaomi_AirPurifier3_slave humidity: 37
2020-04-23_22:25:02 Xiaomi_AirPurifier3_slave pm25_average: 1
2020-04-23_22:25:02 Xiaomi_AirPurifier3_slave speed: 388
2020-04-23_22:25:02 Xiaomi_AirPurifier3_slave pm25: 21
2020-04-23_22:25:02 Xiaomi_AirPurifier3_slave temperature: 23.5
2020-04-23_22:25:02 Xiaomi_AirPurifier3_slave humidity: 37
2020-04-23_22:20:02 Xiaomi_AirPurifier3_slave pm25_average: 1
2020-04-23_22:20:02 Xiaomi_AirPurifier3_slave speed: 390
2020-04-23_22:20:02 Xiaomi_AirPurifier3_slave pm25: 21
2020-04-23_22:20:02 Xiaomi_AirPurifier3_slave temperature: 23.5
2020-04-23_22:20:02 Xiaomi_AirPurifier3_slave humidity: 37
2020-04-23_22:15:02 Xiaomi_AirPurifier3_slave pm25_average: 1
2020-04-23_22:15:02 Xiaomi_AirPurifier3_slave speed: 390
2020-04-23_22:15:02 Xiaomi_AirPurifier3_slave pm25: 21
2020-04-23_22:15:02 Xiaomi_AirPurifier3_slave temperature: 23.5
2020-04-23_22:15:02 Xiaomi_AirPurifier3_slave humidity: 37
2020-04-23_22:10:02 Xiaomi_AirPurifier3_slave pm25_average: 1
2020-04-23_22:10:02 Xiaomi_AirPurifier3_slave speed: 389
2020-04-23_22:10:02 Xiaomi_AirPurifier3_slave pm25: 21
2020-04-23_22:10:02 Xiaomi_AirPurifier3_slave temperature: 23.5
2020-04-23_22:10:02 Xiaomi_AirPurifier3_slave humidity: 37
2020-04-23_22:05:02 Xiaomi_AirPurifier3_slave pm25_average: 1
2020-04-23_22:05:02 Xiaomi_AirPurifier3_slave speed: 389
2020-04-23_22:05:02 Xiaomi_AirPurifier3_slave pm25: 21
2020-04-23_22:05:02 Xiaomi_AirPurifier3_slave temperature: 23.5
2020-04-23_22:05:02 Xiaomi_AirPurifier3_slave humidity: 37
2020-04-23_22:00:20 Xiaomi_AirPurifier3_slave speed: 384
2020-04-23_21:58:31 Xiaomi_AirPurifier3_slave pm25_average: 1
2020-04-23_21:58:31 Xiaomi_AirPurifier3_slave speed: 0
2020-04-23_21:58:31 Xiaomi_AirPurifier3_slave pm25: 32
2020-04-23_21:58:31 Xiaomi_AirPurifier3_slave temperature: 23.5
2020-04-23_21:58:31 Xiaomi_AirPurifier3_slave humidity: 36
2020-04-23_21:53:31 Xiaomi_AirPurifier3_slave pm25_average: 1
2020-04-23_21:53:31 Xiaomi_AirPurifier3_slave speed: 0
2020-04-23_21:53:31 Xiaomi_AirPurifier3_slave pm25: 32
2020-04-23_21:53:31 Xiaomi_AirPurifier3_slave temperature: 23.5
2020-04-23_21:53:31 Xiaomi_AirPurifier3_slave humidity: 36
2020-04-23_21:48:31 Xiaomi_AirPurifier3_slave pm25_average: 1
2020-04-23_21:48:31 Xiaomi_AirPurifier3_slave speed: 0
2020-04-23_21:48:31 Xiaomi_AirPurifier3_slave pm25: 32
2020-04-23_21:48:31 Xiaomi_AirPurifier3_slave temperature: 23.5
2020-04-23_21:48:31 Xiaomi_AirPurifier3_slave humidity: 36
2020-04-23_21:43:31 Xiaomi_AirPurifier3_slave pm25_average: 1
2020-04-23_21:43:31 Xiaomi_AirPurifier3_slave speed: 0
2020-04-23_21:43:31 Xiaomi_AirPurifier3_slave pm25: 32
2020-04-23_21:43:31 Xiaomi_AirPurifier3_slave temperature: 23.5
2020-04-23_21:43:31 Xiaomi_AirPurifier3_slave humidity: 36
2020-04-23_21:38:31 Xiaomi_AirPurifier3_slave pm25_average: 1
2020-04-23_21:38:31 Xiaomi_AirPurifier3_slave speed: 0
2020-04-23_21:38:31 Xiaomi_AirPurifier3_slave pm25: 32
2020-04-23_21:38:31 Xiaomi_AirPurifier3_slave temperature: 23.5
2020-04-23_21:38:31 Xiaomi_AirPurifier3_slave humidity: 36
2020-04-23_21:33:31 Xiaomi_AirPurifier3_slave pm25_average: 1
2020-04-23_21:33:31 Xiaomi_AirPurifier3_slave speed: 0
2020-04-23_21:33:31 Xiaomi_AirPurifier3_slave pm25: 40
2020-04-23_21:33:31 Xiaomi_AirPurifier3_slave temperature: 23.5
2020-04-23_21:33:31 Xiaomi_AirPurifier3_slave humidity: 36
2020-04-23_21:28:31 Xiaomi_AirPurifier3_slave pm25_average: 1
2020-04-23_21:28:31 Xiaomi_AirPurifier3_slave speed: 0
2020-04-23_21:28:31 Xiaomi_AirPurifier3_slave pm25: 40
2020-04-23_21:28:31 Xiaomi_AirPurifier3_slave temperature: 23.5
2020-04-23_21:28:31 Xiaomi_AirPurifier3_slave humidity: 36
2020-04-23_21:23:31 Xiaomi_AirPurifier3_slave pm25_average: 1
2020-04-23_21:23:31 Xiaomi_AirPurifier3_slave speed: 0
2020-04-23_21:23:31 Xiaomi_AirPurifier3_slave pm25: 40
2020-04-23_21:23:31 Xiaomi_AirPurifier3_slave temperature: 23.5
2020-04-23_21:23:31 Xiaomi_AirPurifier3_slave humidity: 36

Intel NUC, Raspberry Pi,CUL 433+868, JeeLink, Uniroll, LD382/LD686 + WifiLight, Eventghost, Tablet UI, Homekit/Homebridge/Siri, Alexa, Squeezebox, Onkyo, MAX, Harmony, KODI, Winconnect, Geofancy, Nmap, Sysmon, Telegram

Offline amenomade

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6034
Antw:FTUI Neue Version chart_widget
« Antwort #537 am: 25 April 2020, 01:25:01 »
Hmm komisch

Theoretisch kann data-ptype auch als Array definiert werden. Vielleicht kannst Du es probieren?
FHEM 5.9 Pi 3, EchoDot, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Online TWART016

  • Hero Member
  • *****
  • Beiträge: 1003
Antw:FTUI Neue Version chart_widget
« Antwort #538 am: 25 April 2020, 02:30:02 »
Hmm komisch

Theoretisch kann data-ptype auch als Array definiert werden. Vielleicht kannst Du es probieren?

Auch damit sieht es gleich aus
data-ptype='["lines","lines","lines","lines"]'
Intel NUC, Raspberry Pi,CUL 433+868, JeeLink, Uniroll, LD382/LD686 + WifiLight, Eventghost, Tablet UI, Homekit/Homebridge/Siri, Alexa, Squeezebox, Onkyo, MAX, Harmony, KODI, Winconnect, Geofancy, Nmap, Sysmon, Telegram

Offline eki

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1092
Antw:FTUI Neue Version chart_widget
« Antwort #539 am: 27 April 2020, 15:41:46 »
Das hat mit dem Plottype gar nichts zu tun, sondern mit columnspec (habe ich auch schon mehrfach erklärt  ;))

In Deinem Logfile gibt es (mindestens) 2 Einträge, die den String "pm25" enthalten. Ein Teil der columnspec (nämlich der nach der Zahl und dem Device) gibt in Form einer regular Expression an, welche Teile aus dem Logfile heraus gefiltert werden sollen, um dann letztenlich die einzelnen Punkte zur Erstellung des Graphen zu erhalten.
Du hast für die rote Linie die regular Expression 'pm25' genommen. Damit werden aber alle Zeilen heraus gefiltert, die irgendwie pm25 enthaten, also auch die, die 'pm25_average' enthalten. So entsteht eine Liste, die immer abwechelnd die "wirklichen" pm25 Werte und die pm25_average Werte enthält, und die wird geplottet, was dazu führt, dass der Graph immer hin und herspringt.
Wenn Du das verhindern wllst, musst Du die regular expression so machen, dass wirklich nur die 'pm25:' Werte herausgefiltert werden. Das würde z.B. so gehen (das \x3a ist der Hexcode für den Doppelpunkt und der \ davor ist für die Maskierung des \ notwendig, eventuell geht statt '\\x3a' auch '\\:'), dann wird auf den Doppelpunkt mit gefiltert und pm25_average sollte für diesen Graphen weggefiltert werden:

data-columnspec='["4:temperature","4:humidity","4:pm25\\x3a","4:pm25_average"]'