FTUI Neue Version chart_widget

Begonnen von eki, 31 Januar 2016, 00:17:26

Vorheriges Thema - Nächstes Thema

dirk.k

Ob das CSS gefunden wird, kann mit den Entwicklertools der Browser geprüft werden.
z.B. bei Firefox <F12> drücken und dann "Netzwerkanalyse" wählen.
Falls das Ergebnis leer ist, die Seite noch mal laden.
Steht da bei dem gewünschten CSS, dass es nicht gefunden wird, kann mittels Mous-Over geprüft werden, wo das CSS herkommen sollte.
Der Pfad der CSS Datei muss dann angepasst werden (z.B. ../pfad/meinCSS.css)
Anlage als Beispiel:

eki

Poste mal den Header Deines HTML Files.

THW

#467
Guten Abend zusammen,

ich benutze das chart_widget gerne und viel und bin begeistert. Echt cool.

Ich habe hier allerdings einen Spezialfall: Mein Server (fhem) steht in Simbabwe, meine Web-Session mit FTUI läuft hier lokal auf einem Rechner in Deutschland.
Wegen der Zeitverschiebung (CAT vs. MET) von 1h sind jetzt die Graphen alle um eine Stunde verschoben.
Das macht nicht viel, solange die fhem-Zeit in der Vergangenheit liegt, wenn aber, wie hier der Fall, die Zeit 1h voraus ist, dann werden alle Plots (mit EndNow) abgeschnitten...
IMHO sollte doch die fhem-Zeit maßgebend sein für das Plotten, nicht die Zeitzone, in der man sich zum Surfen befindet?
Wo und wie kann ich das einstellen?

Herzliche Grüße,
Thomas.


eki

Das ist tatsächlich ein ziemlich spezieller Fall  :o .

Wie ist denn das Verhalten bei den normalen FHEM SVG Graphen? Das Chart Widget bezieht ja seine Informationen über den gleichen Mechanismus von FHEM wie auch die internen SVGs. Allerdings werden da auch ein paar Zeitberechnungen im Chart gemacht. Um das genauer zu analysieren bräuchte ich noch ein paar Infos (Beispiele für FTUI (wie genau sieht die Definition des Charts aus). Wenn ich das habe, werde ich Dir eine URL schicken, die das Datenabholen vom Server (in Simbabwe) simuliert und die Du dann mal eingeben müsstest und mir dann die dargestellte Info im Browser zurückschicken. Danach kann ich mal schauen, ob da was zu machen ist (eventuell muss man da irgendeinen Offset vorsehen).

THW

Zitat von: eki am 31 Oktober 2019, 11:32:17
Das ist tatsächlich ein ziemlich spezieller Fall  :o .

Wie ist denn das Verhalten bei den normalen FHEM SVG Graphen? Das Chart Widget bezieht ja seine Informationen über den gleichen Mechanismus von FHEM wie auch die internen SVGs. Allerdings werden da auch ein paar Zeitberechnungen im Chart gemacht. Um das genauer zu analysieren bräuchte ich noch ein paar Infos (Beispiele für FTUI (wie genau sieht die Definition des Charts aus). Wenn ich das habe, werde ich Dir eine URL schicken, die das Datenabholen vom Server (in Simbabwe) simuliert und die Du dann mal eingeben müsstest und mir dann die dargestellte Info im Browser zurückschicken. Danach kann ich mal schauen, ob da was zu machen ist (eventuell muss man da irgendeinen Offset vorsehen).

Danke für die schnelle Reaktion  :)
Mit den normalen FHEM SVG Graphen gibts keine Probleme, da wird ja Anfang und Ende des Zeitintervalls am Rechner bestimmt und der kennt seine Zeitzone. Mit FTUI werden ja im Javascript-Code u.a. per Date() Zeitpunkte bestimmt, und die sind dann natürlich in der Browser-Zeitzone. Und wenn man dann mehrere Stunden 'auseinander' ist, dann gibts diese Verschiebungen.

Eine meiner Chart-Definitionen sieht so aus:

    <div class="dialog">
<div data-type="chart"
     data-device="IrrigationWatertank_Level"
     data-get="LevelCalibrated"
     data-minvalue="0"
     data-style='["ftui l5fill", "ftui l4"]'
     data-logdevice='["logdb", "logdb"]'
     data-logfile="HISTORY"
     data-columnspec='["IrrigationWatertank_Level:LevelCalibrated", "Borehole_Irrigation:power-get"]'
     data-uaxis='["primary","secondary"]'
     data-nofulldays="true"
     data-daysago_start="24h"
     data-daysago_end="now"
     data-crosshair="true"
>
</div>
    </div>


Abgeholt werden die Daten über einen Proxy-Server, der die Kommunikation mit dem fhem server dann über ein VPN abhandelt.
Gruß,
Thomas.

eki

OK ich werde einen Parameter einbauen (data-timezone_offset), der das entsprechend verschiebbar macht (einfach Offset zwischen Browser Zeitzone und FHEM Zeitzone).
Wird aber mit Tests sicher ein paar Tage dauern (das mit den Zeiten ist manchmal etwas tricky).

dt2510

Kann ich den Abstand der Buttonleiste oben zum Graphen selbst verändern ? Das sitzt mir persönlich zu dicht aufeinander ...

Ich habe noch ein Problem, dazu aber erst einmal der Quellcode des Charts in einem Popup (noch im Entwicklungsstadium...)
<div id="popuppopupDevice"
     class="interlock noshade"
     data-type="popup"
     data-width="95vw"
     data-height="81vh"
     data-left="5vw"
     data-top="19vh"
     data-draggable="false"
     data-mode="fade">
  <div data-type="include" data-url="symbols/symbolBattery.inc" data-parameter='{"dataDevice":"popupDevice","dataGet":"batteryPercent"}'></div>
  <div class="dialog">
    <div data-type="chart"
         data-device="popupDevice"
         data-get="batteryPercent"
         data-logdevice="logdb"
         data-logfile="HISTORY"
         data-columnspec='["popupDevice:batteryPercent"]'
         data-width="90vw"
         data-height="66vh"
         data-style='["ftui l1fill"]'
         data-minvalue="0"
         data-maxvalue="100"
         data-nofulldays="true"
         data-daysago_start="1D"
         data-daysago_end="-1D"
         data-timeranges='[["dieses Jahr","0Y","-1Y"],["dieser Monat","0M","-1M"],["diese Woche","0W","-1W"],["aktuell","1D","-1D"]]'
         data-cursorgroup="1"
         data-scrollgroup="1"
         data-xticks="auto"
         data-y_margin="20"
         data-yticks="auto"
         data-yunit="%">
    </div>
    <div data-type="include" data-url="symbols/symbol.inc" data-parameter='{"dataIcon":"fa-close","dataColor":"symbol_ok"}' onclick="$('#popuppopupDevice.dialog-close').trigger('click');"></div>
  </div>
</div>


das Popup wird folgendermaßen eingebunden
<div class="control_line_trend" data-type="include" data-url="popups/popupBattery.inc" data-parameter='{"popupDevice":"batteryDevice"}'></div>

Die id des Popups ist also je batteryDevice eindeutig.
Ändere ich einem Popup die Zeitachse oder zoome die Werte, übernimmt Chart im Popup einer anderen Batterie diese Werte anstelle der Startwerte data-daysago_start="1D" und data-daysago_end="-1D". Woran kann das liegen ?


eki

Der Abstand zu den Buttons ist bisher leider fix. Ich schau mal ob ich das einbauen kann, werde sowieso demnächst die neue Version (mit Scrollen und Zoomen per Maus oder Finger) freigeben.

Wenn Du data-scrollgroup bei allen Charts auf 1 gesetzt hast, dann scrollen die alle synchron. Setz das mal auf 0 (oder lass es weg).

dt2510

Ich habe data-cursorgroup und data-scrollgroup weggelassen ... jetzt funktioniert es - danke :)

Das mit dem Abstand wäre super !

eki

Hab noch mal nachgeschaut, es gibt doch schon einen Parameter, der die Buttons vom Rest absetzt (data-margin="10" würde den Abstand zwischen Buttons und Chart auf 10 pixel setzen)

dt2510


SirMarco

Hallo zusammen

Ich bin auf der Suche nach einem Lösungsansatz Vorjahreswerte mit in einem Chart anzeigen zulassen.
Sprich: Ein Graph heute und einer vor minus 365 Tagen.

Hat so etwas schon jemand umgesetzt oder kann mir einen Tipp geben?

LG
SirMarco

amenomade

Geht das nicht mit "data-daysago_start" und "data-daysago_end"?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

eki

Wenn ich Dich richtig verstehe willst Du in einem Chart sowohl das aktuelle Jahr als auch das Jahr davor haben um vergleichen zu können. Dazu bräuchte man 2 x-Achsen und das geht bisher nicht. So etwas ähnliches wurde hier https://forum.fhem.de/index.php/topic,48450.msg769158/topicseen.html#msg769158 schon mal gefragt und ich hatte damals einen Vorschlag gemacht.

curt

Zitat von: SirMarco am 08 November 2019, 23:00:25
Ich bin auf der Suche nach einem Lösungsansatz Vorjahreswerte mit in einem Chart anzeigen zulassen.
Sprich: Ein Graph heute und einer vor minus 365 Tagen.

Ja, das wäre sehr schön.
Und zudem wäre schön, wenn man auf "größer", "kleiner" oder auch "nach vorn" oder "nach hinten" klicken könnte: Das wäre ein Traum.

Zitat von: eki am 09 November 2019, 12:45:50
Wenn ich Dich richtig verstehe willst Du in einem Chart sowohl das aktuelle Jahr als auch das Jahr davor haben um vergleichen zu können.

Darauf läuft es hinaus.

Zitat von: eki am 09 November 2019, 12:45:50
Dazu bräuchte man 2 x-Achsen und das geht bisher nicht.

Leider verstehe ich nicht, was Du mit "zwei X-Achsen" meinst: Stellst Du Dir beide Grafiken gerade untereinander vor? Oder was meinst Du mit zwei X-Achsen genau?

Ansich ist die Sache doch einfach (ich muss das ja nicht programmieren ;) ):

1) Es gibt künftig eine Schaltoption "lastyear" mit 0 und 1.

2) Es gibt nur eine X-Achse. Sowohl aktuelles Jahr als auch Vorjahr werden in der gleichen Grafik dargestellt.

3) Die Graphen des Vorjahres kommen optisch in den "Hintergrund" - sie werden etwas breiter sowie deutlich "grauer" dargestellt.

Problem wären natürlich Grafiken, bei mehrere Graphen dargestellt sind. Aber da ist dann irgendwie schon der Anwender/Konfigurator zuständig, selbst verantwortlich: Sind doch alle schon groß!

Scheinbare Probleme wären:
a) 3D-Grafiken. Dort kannst Du das ja unterbinden.
b) Nach unten gefüllte Grafiken: Da wäre mein Vorschlag: Genau wie 3) - aber nicht gefüllt.

Klar bringt das etwas Rechenlast auf den Raspberry - aber genau dafür haben die ja den RPi 4 erfunden ...

Was muss ich denn tun, um Dich von der Richtigkeit und Wichtigkeit der Umsetzung zu überzeugen?

Ok, mal ein konkretes Beispiel.
Nein, ich zettele keine Klimadiskussion an, alles andere als das. Es geht lediglich um die Vergesslichkeit von Menschen: Kennst Du nicht das "aber im letzten Oktober war das deutlich wärmer und sonniger"? Und Deine Erinnerung ist eine ganz andere ...

Da würde ich gern die Nagelprobe machen: "Hey Du, Du träumst! Das war völlig anders, ich zoome mal schnell auf den Oktober, warte mal!" - Dann sehe ich, dass ich selbstverständlich immer Recht habe ... oder gebe nicht zu, dass dieser Träumer Recht hat ...

Im Grunde gilt das für alle kontinuierlichen Signale, überall dort ist das spannend. Aber selbst bei diskreten Signalen ist das nicht uninteressant: "Teuerste, heute vor einem Jahr war ..." au weia. Ich denke das nicht zu Ende. :D

Ok, habe ich Dich überzeugt?
RPI 4 - Jeelink HomeMatic Z-Wave