[gelöst]ftui V3, chart update/refresh, welche Syntax um das autom. zu erledigen?

Begonnen von CottonIJo, 29 November 2022, 22:01:49

Vorheriges Thema - Nächstes Thema

CottonIJo

Hallo zusammen,
ich mache meine ersten Schritte im ftui V3.
Geschafft habe ich jetzt Signale im chart darzustellen, was bis jetzt nicht funktioniert ist ein Update der Signale ohne ein refresh des Explorer-Tabs (Strg + R)
Ich habe (basierend auf Beispielen) versucht das Label [update] mit den notwendigen Daten zu versehen, leider ohne Erfolg, auch, weil mir nicht klar ist, wie sieht die Syntax dafür aus.
Einen Auszug aus der chart Konfiguration habe ich beigefügt.
Was muss ich wo eintragen, damit Event getriggert ein oder die Signal(e) im chart aktualisiert wird/werden?
Ich gehe davon aus, dass [update] das richtige Label ist?

Gruesse Joachim

Auszug html-Datei (ist noch erster Gehversuch)

   <ftui-grid-tile row="1" col="1" height="2" width="3">
      <header>Heizung</header>

      <ftui-chart title="demo-chart" y-label="Heizung" y1-label="Außen" y-unit="°C" y1-unit="°C" type="line"
                    y-min="20" y-max="60">
        <ftui-chart-data label="Außen" color="warning" log="FileLog_AgroWeather" spec="4:AgroWeather.temperature"
                         y-axis-id="y1"></ftui-chart-data>
        <ftui-chart-data label="Vorlauf" fill background-color="rgba(75,192,192,0.2)" color="rgba(75,192,192,1)"
                         log="FileLog_00_UG_HzgKeller_Vor_RuecklaufTemp_T1" spec="4:temperature" fill="false"
                         [update]="FileLog_00_UG_HzgKeller_Vor_RuecklaufTemp_T1:temperature:time"></ftui-chart-data>
        <ftui-chart-data label="Rücklauf" fill background-color="#d6305650" color="#d63056"
                         log="FileLog_00_UG_HzgKeller_Vor_RuecklaufTemp_T2" spec="4:temperature" fill="false"></ftui-chart-data>

        <ftui-chart-controls units="day, week"></ftui-chart-controls>
      </ftui-chart>

    </ftui-grid-tile>


Auszug verfügbares Plot-File
FileLog_00_UG_HzgKeller_Vor_RuecklaufTemp_T1

2022-11-28_00:01:08 00_UG_HzgKeller_Vor_RuecklaufTemp_T1 T: 35.5
2022-11-28_00:01:08 00_UG_HzgKeller_Vor_RuecklaufTemp_T1 Temp_Diff: 2.7
2022-11-28_00:01:08 00_UG_HzgKeller_Vor_RuecklaufTemp_T1 Temp_Diff_round: 2.7
2022-11-28_00:01:08 00_UG_HzgKeller_Vor_RuecklaufTemp_T1 temperature: 35.5
2022-11-28_00:01:08 00_UG_HzgKeller_Vor_RuecklaufTemp_T1 Temp_Diff: 1
2022-11-28_00:01:08 00_UG_HzgKeller_Vor_RuecklaufTemp_T1 Temp_Diff_round: 1.0
2022-11-28_00:01:08 00_UG_HzgKeller_Vor_RuecklaufTemp_T1 Vorlauf-Temp.av: 41.645
2022-11-28_00:01:08 00_UG_HzgKeller_Vor_RuecklaufTemp_T1 Temp_Diff: 1
2022-11-28_00:01:08 00_UG_HzgKeller_Vor_RuecklaufTemp_T1 Temp_Diff_round: 1.0
2022-11-28_00:01:08 00_UG_HzgKeller_Vor_RuecklaufTemp_T1 T: 35.5
2022-11-28_00:01:08 00_UG_HzgKeller_Vor_RuecklaufTemp_T1 Temp_Diff: 1
2022-11-28_00:01:08 00_UG_HzgKeller_Vor_RuecklaufTemp_T1 Temp_Diff_round: 1.0
2022-11-28_00:01:08 00_UG_HzgKeller_Vor_RuecklaufTemp_T1 temperature: 35.5
2022-11-28_00:01:08 00_UG_HzgKeller_Vor_RuecklaufTemp_T1 Temp_Diff: 1
2022-11-28_00:01:08 00_UG_HzgKeller_Vor_RuecklaufTemp_T1 Temp_Diff_round: 1.0
2022-11-28_00:01:08 00_UG_HzgKeller_Vor_RuecklaufTemp_T1 Vorlauf-Temp.av: 41.645
2022-11-28_00:01:08 00_UG_HzgKeller_Vor_RuecklaufTemp_T1 Temp_Diff: 1
2022-11-28_00:01:08 00_UG_HzgKeller_Vor_RuecklaufTemp_T1 Temp_Diff_round: 1.0
2022-11-28_00:03:57 00_UG_HzgKeller_Vor_RuecklaufTemp_T1 T: 34.3
2022-11-28_00:03:57 00_UG_HzgKeller_Vor_RuecklaufTemp_T1 Temp_Diff: 1
2022-11-28_00:03:57 00_UG_HzgKeller_Vor_RuecklaufTemp_T1 Temp_Diff_round: 1.0
2022-11-28_00:03:57 00_UG_HzgKeller_Vor_RuecklaufTemp_T1 temperature: 34.3


Auszug verfügbares Plot-File
FileLog_00_UG_HzgKeller_Vor_RuecklaufTemp_T2

2022-11-28_00:01:08 00_UG_HzgKeller_Vor_RuecklaufTemp_T2 T: 34.5
2022-11-28_00:01:08 00_UG_HzgKeller_Vor_RuecklaufTemp_T2 temperature: 34.5
2022-11-28_00:01:08 00_UG_HzgKeller_Vor_RuecklaufTemp_T2 T: 34.5
2022-11-28_00:01:08 00_UG_HzgKeller_Vor_RuecklaufTemp_T2 temperature: 34.5
2022-11-28_00:03:57 00_UG_HzgKeller_Vor_RuecklaufTemp_T2 T: 34.1
2022-11-28_00:03:57 00_UG_HzgKeller_Vor_RuecklaufTemp_T2 temperature: 34.1
2022-11-28_00:03:57 00_UG_HzgKeller_Vor_RuecklaufTemp_T2 T: 34.1
2022-11-28_00:03:57 00_UG_HzgKeller_Vor_RuecklaufTemp_T2 temperature: 34.1
2022-11-28_00:06:32 00_UG_HzgKeller_Vor_RuecklaufTemp_T2 T: 33.7
2022-11-28_00:06:32 00_UG_HzgKeller_Vor_RuecklaufTemp_T2 temperature: 33.7
2022-11-28_00:06:32 00_UG_HzgKeller_Vor_RuecklaufTemp_T2 T: 33.7
2022-11-28_00:06:32 00_UG_HzgKeller_Vor_RuecklaufTemp_T2 temperature: 33.7
2022-11-28_00:08:52 00_UG_HzgKeller_Vor_RuecklaufTemp_T2 T: 33.5
2022-11-28_00:08:52 00_UG_HzgKeller_Vor_RuecklaufTemp_T2 temperature: 33.5
2022-11-28_00:08:52 00_UG_HzgKeller_Vor_RuecklaufTemp_T2 T: 33.5
2022-11-28_00:08:52 00_UG_HzgKeller_Vor_RuecklaufTemp_T2 temperature: 33.5
2022-11-28_00:10:58 00_UG_HzgKeller_Vor_RuecklaufTemp_T2 T: 33.2
2022-11-28_00:10:58 00_UG_HzgKeller_Vor_RuecklaufTemp_T2 temperature: 33.2
2022-11-28_00:10:58 00_UG_HzgKeller_Vor_RuecklaufTemp_T2 T: 33.2
2022-11-28_00:10:58 00_UG_HzgKeller_Vor_RuecklaufTemp_T2 temperature: 33.2


OdfFhem

Zitat von: CottonIJo am 29 November 2022, 22:01:49
Ich gehe davon aus, dass [update] das richtige Label ist?
update ist das richtige Attribut und die eckigen Klammern sorgen dafür, dass auf passende Events reagiert wird.

Passende Events könnten z.B. aus dem FileLog-Device kommen:
Ist dort das Attribut eventOnThreshold gesetzt, wäre das relevante Reading linesInTheFile.

[update]="FileLog_00_UG_HzgKeller_Vor_RuecklaufTemp_T1:linesInTheFile"

CottonIJo

@OdfFhem, danke für die schnelle Hilfe, es funktioniert, leider nur für das Signal bei dem für [update] das Reading "linesInTheFile" gesetzt ist.
Im screenshot ist für <Rücklauf> kein [update] gesetzt.
Wenn ich das richtig verstehe, wirkt die zu setzende Zahl beim Attribut eventOnThreshold als Boolean, somit wirkt (!=0) also ("1") als "true"?

Bleibt für mich trotzdem die Frage, warum kann ich nicht ein Reading (Messsignal) nehmen welches gelogt wird, dafür wird ja auch ein event erzeugt.
So muss ich daran denken, in jedem Log-File das Attribut eventOnThreshold zu setzen wenn ich ein automatisches Update des chart möchte.

Kann mir jemand sagen, ob ein globales [update] geplant ist welches dann auf alle Readings eines charts wirkt?

Joachim

OdfFhem

Zitat von: CottonIJo am 30 November 2022, 12:12:36
es funktioniert, leider nur für das Signal bei dem für [update] das Reading "linesInTheFile" gesetzt ist.
Im screenshot ist für <Rücklauf> kein [update] gesetzt.
Grundsätzlich gilt beim fehlenden update-Attribut bzw. update-Attribut ohne eckige Klammern, dass auf keine Aktualisierung gewartet wird.
Die darzustellenden Werte werden (im Zweifel) nur beim ersten Aufruf bzw. Refresh geholt.
Jedes ftui-chart-data benötigt ein eigenes update-Attribut ... wenn auch das passende Event gleich ist

Zitat von: CottonIJo am 30 November 2022, 12:12:36
Wenn ich das richtig verstehe, wirkt die zu setzende Zahl beim Attribut eventOnThreshold als Boolean, somit wirkt (!=0) also ("1") als "true"?
Die angegebene Zahl legt fest, in welchem Rhythmus ein Event erzeugt wird:
0 ... nie
1 ... mit jeder neuen Zeile
2 ... mit jeder zweiten, neuen Zeile
3 ... usw.
Man kann also einstellen, ob man keine, jede oder nur jede x-te Änderung mitbekommen möchte.
ftui-chart-data wartet nur auf ein Event zur Aktualisierung, der Event-Inhalt ist im Grunde egal.

Zitat von: CottonIJo am 30 November 2022, 12:12:36
Bleibt für mich trotzdem die Frage, warum kann ich nicht ein Reading (Messsignal) nehmen welches gelogt wird, dafür wird ja auch ein event erzeugt.
So muss ich daran denken, in jedem Log-File das Attribut eventOnThreshold zu setzen wenn ich ein automatisches Update des chart möchte.
Im vorigen Beitrag stand ja, dass das Event vom FileLog-Device kommen könnte ... ist aber nicht zwingend.
In etlichen Fällen macht dies aber Sinn, da gesetzte Attribute im FileLog-Device entscheiden könnten, ob ein ausgelöstes Event tatsächlich zu einem Log-Eintrag führt oder doch nicht.

Nichtsdestotrotz kann aber auch jedes x-beliebige Event für das update-Attribut genutzt werden ... das Event muss nur auch vorkommen.
... aus Deinem Beispiel eher unwahrscheinlich, da ein FileLog-Device normalerweise kein Reading "temperature" hat
[update]="FileLog_00_UG_HzgKeller_Vor_RuecklaufTemp_T1:temperature:time">
... schon wahrscheinlicher, wenn ein Gerät referenziert wird, dass ein Reading namens temperature haben könnte
[update]="00_UG_HzgKeller_Vor_RuecklaufTemp_T1:temperature:time">

CottonIJo

@OdfFhem, die Erläuterungen sind jetzt sehr hilfreich, damit habe ich verschiedene Update-Quellen (Log-File und/oder device)
Da ich auf dem ftui-Raspi die physikalischen devices anhand von FHEM2FHEM clone kann ich beides nutzen.
Ich hatte fälschlicherweise angenommen, dass alle zu verwertende Readings aus dem Log-File kommen müssen und kein reales event für ein update benötigt wird, quasi wie ein verstecktes refresh durch das chart selber.

Das Attribut eventOnThreshold habe ich noch nie verwendet, die Auswirkung hatte ich somit gar nicht im Fokus. Mit den aktuell gegebenen Möglichkeiten kann ich gut leben.

Grüße Joachim