[FHEM-Tablet-UI] Chart

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

Vorheriges Thema - Nächstes Thema

GSK19

Super, das war der entscheidende Punkt. In die Richtung hatte ich überhaupt nicht gedacht - alleine hätte ich da wohl noch 100 Jahre gesucht, um mein Chart wiederzubeleben.
Danke Dir! :)

setstate

Ich habe jetzt die Datenabfrage per zentraler Abfrage mit csrf eingebaut

            ftui.sendFhemCommand(cmd)


Aber es werden keine Datenpunkte aufgebaut, obwohl Daten geliefert werden

Zitat
[Log] Function: widget_chart.refresh – "Got 0 points for Graph 1" (widget_chart.js, line 68)
[Log] send to FHEM: get FileLog_WohnzimmerHeizung - - 2017-03-01_00:00:00 2017-03-02_00:00:00 4:desired-temp (fhem-tablet-ui.js, line 1704)
[Log] Function: widget_chart.refresh – "Got 0 points for Graph 2" (widget_chart.js, line 68)
[Log] send to FHEM: get FileLog_WohnzimmerHeizung - - 2017-03-01_00:00:00 2017-03-02_00:00:00 4:ValvePosition (fhem-tablet-ui.js, line 1704)
[Log] Function: widget_chart.refresh – "Got 0 points for Graph 3" (widget_chart.js, line 68)
[Log] Function: widget_chart.refresh – "Chart finished, Parameters: {↵  \"type\": \"chart\",↵  \"columnspec\": [↵    \"4:measured-temp\",↵    \"4:desired-temp\",↵    \"4:ValvePosition\"↵  ],..." (widget_chart.js, line 68)
"Chart finished, Parameters: {
  \"type\": \"chart\",
  \"columnspec\": [
    \"4:measured-temp\",
    \"4:desired-temp\",
    \"4:ValvePosition\"
  ],
  \"logfile\": \"-\",
  \"logdevice\": \"FileLog_WohnzimmerHeizung\",
  \"device\": \"WohnzimmerHeizung\",
  \"minvalue_sec\": \"auto\",
  \"maxvalue_sec\": \"auto\",
  \"minvalue\": \"auto\",
  \"maxvalue\": \"auto\",
  \"y_margin\": 0,
  \"y_margin_sec\": 0,
  \"daysago_start\": \"0\",
  \"daysago_end\": \"-1\",
  \"timeformat\": \"\",
  \"xticks_round\": \"\",
  \"xticks_angle\": 0,
  \"xticks\": \"auto\",
  \"yticks\": \"auto\",
  \"yticks_sec\": \"auto\",
  \"yunit\": \"\",
  \"yunit_sec\": \"\",
  \"ytext\": \"\",
  \"ytext_sec\": \"\",
  \"style\": \"\",
  \"ptype\": \"lines\",
  \"uaxis\": \"primary\",
  \"get\": \"STATE\",
  \"graphWidth\": 83.20738017429193,
  \"graphHeight\": 74.98958333333333,
  \"textWidth\": 30,
  \"textHeight\": 11.515625,
  \"bottomOffset\": 11.515625,
  \"topOffset\": 26,
  \"crosshair\": false,
  \"cursor_digits\": 5,
  \"crs_inactive\": false,
  \"showlegend\": false,
  \"nofulldays\": false,
  \"graphsshown\": [
    true,
    true,
    true
  ],
  \"xclassifier\": \"\",
  \"days_start\": 0,
  \"days_end\": -1,
  \"shift\": 0,
  \"scale\": 1,
  \"instance\": 1,
  \"initialized\": true,
  \"noticks\": false,
  \"DDD\": {
    \"has3D\": true,
    \"prefix\": \"-webkit-\",
    \"dir\": {
      \"x\": 1,
      \"y\": 1
    },
    \"Active\": false,
    \"Setting\": [
      \"0\",
      \"0\",
      \"0\"
    ],
    \"Space\": 15,
    \"Width\": 10,
    \"Distance\": 25,
    \"String\": {
      \"Rot\": \"-webkit-transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg)\",
      \"Scale\": \"translate(0px, 0px) scale(1, 1)\"
    },
    \"scaleX\": 1,
    \"scaleY\": 1,
    \"shiftY\": 0,
    \"shiftX\": 0
  },
  \"popup\": false,
  \"xrange\": 1440,
  \"mindate\": \"2017-03-01_00:00:00\",
  \"nGraphs\": 3,
  \"logProxy\": false,
  \"nofilldown\": [
    false,
    false,
    false
  ],
  \"textWidth_prim\": 63.5625,
  \"textWidth_sec\": 13.515625,
  \"dateWidth\": 27.8125,
  \"xscale\": 1440,
  \"basewidth\": 459,
  \"baseheight\": 150,
  \"xStr\": \"63.5625px\",
  \"xStrTO\": \"63.5625px\",
  \"yStr\": \"381.92187499999994px\",
  \"yStrTO\": \"112.484375px\",
  \"projectionDist\": 5000,
  \"defaultHeight\": \"\",
  \"defaultWidth\": \"93%\",
  \"chartArea\": {
    \"left\": 274.296875,
    \"top\": 27,
    \"width\": 459,
    \"height\": 150
  },
  \"graphArea\": {
    \"left\": 337.859375,
    \"top\": 53,
    \"width\": 381.92187499999994,
    \"height\": 112.484375
  },
  \"xrangeW\": null,
  \"diffY_prim\": 0.01,
  \"min_prim\": 0,
  \"scaleY\": 42411.16065949352,
  \"shiftY\": 0,
  \"min_save\": 0,
  \"max_save\": 424.1116065949352,
  \"diffY_sec\": 0.01,
  \"min_sec\": 0,
  \"scaleY_sec\": 42411.16065949352,
  \"shiftY_sec\": 0,
  \"min_save_sec\": 0,
  \"max_save_sec\": 424.1116065949352,
  \"pointsarray\": [
    [],
    [],
    []
  ],
  \"pointsarrayCursor\": [
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    []
  ],
  \"done\": true
}"

klausw

Das Konsolenlog sieht bei mir nicht anders aus  :-\
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Wiesel

Hallo,

bei mir genau das gleiche.

Konsole zeigt


.
.
.
start shortpoll in (ms):500
fhem-tablet-ui.js:1704 send to FHEM: get logdb HISTORY - 2017-03-02_00:00:00 2017-03-03_00:00:00 TH_Kueche:temperature
widget_chart.js:68 Function: widget_chart.refresh Got 0 points for Graph 1
fhem-tablet-ui.js:1704 send to FHEM: get logdb HISTORY - 2017-03-02_00:00:00 2017-03-03_00:00:00 TH_Kueche:humidity
widget_chart.js:68 Function: widget_chart.refresh Got 0 points for Graph 2
fhem-tablet-ui.js:1704 send to FHEM: get logdb HISTORY - 2017-03-02_00:00:00 2017-03-03_00:00:00 TT_Kueche_Clima:ValvePosition
widget_chart.js:68 Function: widget_chart.refresh Got 0 points for Graph 3
widget_chart.js:68 Function: widget_chart.refresh Chart finished, Parameters: {
  "type": "chart",
  "xticks": "auto",
  "showlegend": false,
.
.
.
Raspi 4 mit FHEM und CUL / Conbee2

setstate

Das Chart nicht mehr ging, lag an meinem Versuch den ajax Aufruf durch die zentrale Funktion ftui.sendFhemCommand(cmd) zu ersetzen. Dabei habe ich übersehen, dass der Aufruf nur funktioniert, wenn er synchron erfolgt.
Auf asynchrone Abarbeitung umzubauen, wurde mir ganz schnell zu viel und ich habe meine Änderung wieder zurückgenommen.
Jetzt geht es erstmal wieder.

klausw

Heißt das, die Datenmenge ist zu groß? Aber dann dürfte es bei Simplecharts auch nicht gehen, oder?

Gesendet von meinem HTC One mit Tapatalk

RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

setstate

Synchron bedeutet, der Ablauf der Funktion pausiert, bis die Daten vom Server angekommen sind. Das könnte der User spüren, weil in diesem Augenblick keine Eingabe möglich ist. Wenn nur wenige Daten abgeholt werden ist das kein Problem.
Beim Simplechart passiert der weitere Ablauf kpl. im done(){}, also wenn Daten angekommen sind. Beim Chart ist alles viel zu verschachtelt mit for-Schleifen für die einzelnen Datenreihen, der Umbau scheint mir sehr aufwendig.

ulli

Lassen sich im Chart die Daten noch z.B. durch 1000 teilen bevor sie angezeigt werden?
wie es für die Standard FHEM Plotes geht mit z.B. $fld[3]/1000?

eki

Ja, das geht, und zwar genau so wie bei den Standard FHEM Plots, indem Du die entsprechende Definition in die columnspec der Chart Definition packst.
Hier ein Beispiel:
data-columnspec="4:.measured-temp::$fld[3]-2"

eki

Zitat von: setstate am 02 März 2017, 22:33:46
Synchron bedeutet, der Ablauf der Funktion pausiert, bis die Daten vom Server angekommen sind. Das könnte der User spüren, weil in diesem Augenblick keine Eingabe möglich ist. Wenn nur wenige Daten abgeholt werden ist das kein Problem.
Beim Simplechart passiert der weitere Ablauf kpl. im done(){}, also wenn Daten angekommen sind. Beim Chart ist alles viel zu verschachtelt mit for-Schleifen für die einzelnen Datenreihen, der Umbau scheint mir sehr aufwendig.

Ich habe jetzt mal eine Version gemacht, die mit CSRF funktionieren sollte (immer noch per synchronem Ajax Aufruf, bezüglich Umbau auf asynchron muss ich mir erst mal Gedanken machen ob und wie das am besten geht, ist aber auf jeden Fall was Größeres). Bitte mal testen und Bescheid geben.

setstate

Zitat von: eki am 06 März 2017, 09:31:27
Ich habe jetzt mal eine Version gemacht, die mit CSRF funktionieren sollte (immer noch per synchronem Ajax Aufruf, bezüglich Umbau auf asynchron muss ich mir erst mal Gedanken machen ob und wie das am besten geht, ist aber auf jeden Fall was Größeres). Bitte mal testen und Bescheid geben.

Hätte ich vllt. erwähnen sollen: CSRF handling hatte ich schon eingearbeitet (in die Repo Version)

eki

Nimm bitte trotzdem meine Version ins Repo, da sind auch noch einige andere Kleinigkeiten angepasst.

setstate

Okay, kann ich aber erst am WE tun, wenn ich von der Dienstreise wieder da bin.

jnewton957

Hallo,

ich versuche gerade eine SVG Umsetzung in das TabletUI chart widgetOverride umzubauen.
Bis auf ein "feature" klappt dies auch.

Im gplot habe ich wie Style grösse (width) der linie bzw. point auf 4.
plot "<IN>" using 1:2 axes x1y1 title 'Bad' ls l0fill lw 4 with points,\ 

Wie bekomme ich das "lw 4" nun im Chart widget definiert?

Danke
Jörg
FHEM6.2 auf Pi5
V 1.66 nanoCUL 433 (IT)
V 1.66 nanoCUL868 (HM)
sqlite3 LogDb
ELRO AB440, DECT200,  TFA30.3125, esp8266, HM, TabletUI, IR-Schreiblesekopf (Udo),tibber Pulse, Kostal Pico, cfos Wallbox, Modbus TCP

eki