Hauptmenü

[FTUI 3] Charts

Begonnen von grossmaggul, 15 Januar 2021, 10:23:02

Vorheriges Thema - Nächstes Thema

grossmaggul

Zitatbei month sehe ich keinen Fehler
Ich schon, der saß vor dem Monitor. ::)
FHEM auf Debian 12 Bookworm Server, Supermicro Core2Duo Board, 2 TB HD RAID 1, 8GB RAM, 2 x nanoCUL868, 1 x nanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1,WLED

presskopf

Aktuell kriege ich einen Bar-Chart hin, auch mit mehreren Datenreihen. Die Breite z.B. wird stets automatisch formatiert. Bei langen Zeiträumen wird's dann etwas dünn / linienhaft (z.B. Zwei Datenreihen, mit Monats- und Tageswerten)
Also sind die Einstellungen beim Bar-Chart noch relativ überschaubar oder habe ich etwas übersehen?

(Kein Druck auf den Entwickler, habe keine dringende Not, will nur meine Fähigkeiten verifizieren. :) )

Wolfgang Hochweller

Kann ich dem Chart beibringen, einen bestimmten Anfangsmodus zu honorieren ?
Egal, was ich bei Chart-control als Moeglichkeiten angebe, es faengt immer mit einer Tagesdarstellung an.
Einmal auf was anderes geklickt und alles ist ok.
Es wuerde doch sicher Sinn machen, die erste der bei Chart-control angegebenen Moeglichkeiten als Startdarstellung zu nehmen

OdfFhem

@Wolfgang Hochweller

In chart-controls gibt man die möglichen Modi an.
In chart gibt man mit Attribut unit den gewünschten (Start)Modus an - vorbelegt mit "day".

Wolfgang Hochweller


Dracolein

#35
Gibts eine Möglichkeit die "Darstellungsbreite" der X-Achse zu beeinflussen?
Derzeit wird mir defaultmäßig der aktuelle gesamte Tag von 00:00 - 23:59 Uhr vollständig dargestellt, obwohl zwischen ca. 20:00 - 07:00 Uhr keine einzigen Daten im FileLog hinterlegt werden.
Könnte ich die X-Achsendarstellung begrenzen auf 06:00 - 20:00 Uhr ? Dann sähe das Diagramm weniger "zusammengeschoben" aus.
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

grossmaggul

Irgendwie wird mir bei den Charts die Beschriftung der zweiten y-Achse nicht angezeigt.

So sieht das bei mir aus:

<ftui-grid-tile row="3" col="2" height="2" width="8" shape="round" class="semitransparent">
            <!-- Chart Radiator -->
            <ftui-content file="content/heizung_charts.html" titel="Radiator"
                          y_label="Temperatur" y1_label="Ventil" label1="Ist" label2="Soll" label3="Ventil"
                          geraet="wz.radiator" ist="temperature" soll="desiredTemperature" ventil="valveposition"
                          farbe_ist="#d63056" hg-farbe_ist="#d6305650" farbe_soll="#d67054" hg-farbe_soll="#d6407650" farbe_ventil="rgba(75,192,192,1)" hg-farbe_ventil="rgba(75,192,192,0.2)" punkt_radius="0">
            </ftui-content>
        </ftui-grid-tile>


Das contentfile dazu:
<ftui-chart title="{{titel}}" y-label="{{y_label}}" y1-label="{{y1_label}}" unit="week">
       
            <ftui-chart-data fill label="{{label1}}"
                             background-color="{{hg-farbe_ist}}"
                             color="{{farbe_ist}}"
                             log="logdb"
                             file="history"
                             spec="{{geraet}}:{{ist}}"
                             point-radius="{{punkt_radius}}">
            </ftui-chart-data>
           
            <ftui-chart-data fill label="{{label2}}"
                             background-color="{{hg-farbe_soll}}"
                             color="{{farbe_soll}}"
                             log="logdb"
                             file="history"
                             spec="{{geraet}}:{{soll}}"
                             point-radius="{{punkt_radius}}">
            </ftui-chart-data>
               
            <ftui-chart-data fill label="{{label3}}"
                             background-color="{{hg-farbe_ventil}}"
                             color="{{farbe_ventil}}"
                             log="logdb"
                             file="history" 
                             spec="{{geraet}}:{{ventil}}"
                             y-axis-id="y1"
                             point-radius="{{punkt_radius}}">
            </ftui-chart-data>
               
            <ftui-chart-controls units="day,week,month"></ftui-chart-controls>
</ftui-chart>


Was mache ich da falsch?
FHEM auf Debian 12 Bookworm Server, Supermicro Core2Duo Board, 2 TB HD RAID 1, 8GB RAM, 2 x nanoCUL868, 1 x nanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1,WLED

grossmaggul

Sieht so aus, als würde das in einem Contentfile nicht funktionieren, wenn ich das o.a. Beispiel direkt einbinde, gehtˋs.
FHEM auf Debian 12 Bookworm Server, Supermicro Core2Duo Board, 2 TB HD RAID 1, 8GB RAM, 2 x nanoCUL868, 1 x nanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1,WLED

setstate

Zitat von: Dracolein am 18 November 2021, 20:49:25
Gibts eine Möglichkeit die "Darstellungsbreite" der X-Achse zu beeinflussen?
Derzeit wird mir defaultmäßig der aktuelle gesamte Tag von 00:00 - 23:59 Uhr vollständig dargestellt, obwohl zwischen ca. 20:00 - 07:00 Uhr keine einzigen Daten im FileLog hinterlegt werden.
Könnte ich die X-Achsendarstellung begrenzen auf 06:00 - 20:00 Uhr ? Dann sähe das Diagramm weniger "zusammengeschoben" aus.

ich habe jetzt x-min und x-max eingebaut. Das wirkt aber nur bei unit="day" (was Default ist)


    <ftui-grid-tile row="3" col="1" height="2" width="3">
      <header>6am-8pm</header>

        <ftui-chart title="Power 6am-8pm" y-label="Power in VA" x-min="6" x-max="20" y-max="600">
          <ftui-chart-data fill background-color="#d6305650" color="#d63056"
                           log="FileLog_MQTT2_PV_GROWATT_GAH0A4406L"
                           spec="4:MQTT2_PV_GROWATT_GAH0A4406L.Pac1">
          </ftui-chart-data>
          <ftui-chart-controls></ftui-chart-controls>
        </ftui-chart>
     
    </ftui-grid-tile>

Dracolein

Herzlichen Dank, ist eingebaut und funktioniert einwandfrei
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

grossmaggul

Ich habe das jetzt nochmal überprüft, charts in contentfiles funktionieren leider nicht richtig, wie ich schon vermutet hatte. Die y-axis-id wird da scheinbar nicht richtig übergeben.
Die auch schon gemeldete Fehlermeldung hängt wohl auch mit dem Chart in einem Contentfile zusammen, zumindest verschwindet sie, wenn man das Chart direkt einbindet.
FHEM auf Debian 12 Bookworm Server, Supermicro Core2Duo Board, 2 TB HD RAID 1, 8GB RAM, 2 x nanoCUL868, 1 x nanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1,WLED

muma

Habe mal eine Frage: Gibt es einen Trick wie man z.B. textbasierte Felde wie z.B. den Status (on/off) darstellen kann.
Würde mir gerne den Zustand eines Schalters als Rechteckkurve anzeigen lassen.  ::)

LuGu

Zitat von: muma am 30 November 2021, 23:06:05
Habe mal eine Frage: Gibt es einen Trick wie man z.B. textbasierte Felde wie z.B. den Status (on/off) darstellen kann.
Würde mir gerne den Zustand eines Schalters als Rechteckkurve anzeigen lassen.  ::)

Moin muma,

ich habe es über ein userReadings gelöst. z.B. für den Actuator der Fußbodenheizung. Geht bestimmt einfacher, aber so funktioniert es.

attr eg_wz_Heizung_2_HM userReadings actuator\
{if (ReadingsVal($name,"9.STATE","") eq "on") {return "1"} elsif (ReadingsVal($name,"9.STATE","") eq "off") {return "0"} else {return "Error"}}

Gruß LuGu
FHEM mit RPi3 (Visu über FTUI)
HMCCU mit piVCCU3 / MQTT2 mit zigbee2mqtt

setstate

#43
Diese Funktion bietet FHEM beim Log-abrufen out of the box.

die Spec-Angabe ist so aufgebaut: Column:Regexp:DefaultValue:Function

log="FileLog_WCLuefter" spec="4:WCLuefter.status-get:0:$fld[3]=~'on'?1:0"

Nachtrag: Bei dieser Art von Chart ist es sinnvoll, stepped zu setzen, damit man Rechteckkurven bekommt. Ansonsten ist es ein ZickZack-Graph.


        <ftui-chart title="Lüfter" width="600px" height="200px" x-min="8" x-max="11">
          <ftui-chart-data fill stepped
                log="FileLog_WCLuefter"
                spec="4:WCLuefter.status-get:0:$fld[3]=~'on'?1:0"></ftui-chart-data>
          <ftui-chart-controls units="day, hour"></ftui-chart-controls>
        </ftui-chart>

setstate

Zur Info:

Ein Beispiel für ein Multiple Type Chart - Line + Bar

Das Line-Chart (linke Y-Achse) setzt einen Punkt pro Messinterval, die mit Linien verbunden sind.
Das Bar-Chart (rechte Y-Achse) zeigt den Zuwachs pro Stunde der Totalleistung. Die Berechnung passiert durch die FHEM-Funktion delta-h.


     <ftui-chart title="Power 6am-8pm" y-label="Power in VA"
                    x-min="6" x-max="20" y-max="600" y1-max="1" y1-label="Gain in KWh">
          <ftui-chart-data background-color="#d6305650" color="#d63056"
                           log="FileLog_PVConverter"
                           spec="4:PVConverter.Pac1">
          <ftui-chart-data type="bar" y-axis-id="y1"
                           log="FileLog_PVConverter"
                           spec="4:PVConverter.Eac_tota::delta-h">                           
          </ftui-chart-data>
          <ftui-chart-controls></ftui-chart-controls>
     </ftui-chart>