Hauptmenü

[FTUI 3] Charts

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

Vorheriges Thema - Nächstes Thema

M.Piet

Zitat von: mr_petz am 27 Juni 2023, 14:50:07Gerade nachgestellt und getestet. Es läuft bei mir so:
Hey :)

Grad wollte ich posten wie ich es gelöst habe.
Hintenrum...durch die Brust ins Auge. Aber danke für deine Anregung!

Ein Notify setzt einen Dummy auf 1 wenn Solar an geht. Ein anderes Notify setzt den gleichen Dummy auf 0, wenn Solar aus geht.
Und für den Dummy habe ich ein Filelog erzeugt, was mir diese Daten ausgibt:

2023-06-29_14:46:30 DummyLogSolar 0
2023-06-29_14:47:56 DummyLogSolar 1

Es gibt nur eins, was mich wundert. Ich habe den Chart als "bar" eingerichtet. Dann würde ich auch ausschließlich senkrechte "Bars" erwarten. In FTUI 2 hatte ich das "data-ptype='["fsteps"]' erreicht.
Ich bekomme (wie im Screenshot zu sehen) schräge Linien. Gibt es denn die Möglichkeit, nur Stufen zu bekommen?


<ftui-chart-data fill bar label="Solar aktiv" color="warning" log="FileLog_Pool_Solar_Status" spec="3" y-axis-id="y1"></ftui-chart-data>

mr_petz

Zitat von: M.Piet am 29 Juni 2023, 15:21:43
Zitat von: mr_petz am 27 Juni 2023, 14:50:07Gerade nachgestellt und getestet. Es läuft bei mir so:
Hey :)

Grad wollte ich posten wie ich es gelöst habe.
Hintenrum...durch die Brust ins Auge. Aber danke für deine Anregung!

...

Hi

Die "Anregung" würde ich gern umgesetzt sehen ob sie funktioniert  ;)
LG

hapege

Zitat von: mr_petz am 27 Juni 2023, 14:31:32@hapege

Zitat von: hapege am 25 Juni 2023, 10:07:50...
Aber ich verstehe einen Punkt bei den charts, genauer bei "spec=..." nicht. Kann es sein, dass der Name des Readings nicht "exakt" genommen wird sondern im Sinne von "enthält"?
...

Habe es mal nachgestellt und du hast Recht mit deiner Vermutung.
Da es ein regexp Ausdruck ist, funktioniert das im spec:
spec="4:Delock01.ENERGY_Power\b"
Mit \b sagt man Ende des Wortes. Ansonsten nimmt er alles was in deinem Beispiel -> ENERGY_Power beinhaltet..


Super, das wars - Danke Dir!
Developer: 70_ESCVP21net.pm, 70_SVDRP.pm
Mitglied FHEM e.V.


Eisix

Hallo,

ich möchte meinen Reststromverbrauch und meine PV-Erzeugung stacked darstellen was mit dem code hier auch funktioniert aber nur wenn der Timestamp jeden Tag gleich ist. Das passt aber nicht immer, was dazu führt das nichts angezeigt wird.

        <ftui-chart title="Stromverbrauch kWh" unit="month" y-min="0" stacked-y>
                <ftui-chart-data label="kWh Tag" type="bar" color="#ff0000"   log="lp" spec="DbLog:logdb,offset=-60*60*24:ShellyEM3_Zaehler:ShellyEM3_Zaehlerstand_EnergyDayLast"></ftui-chart-data>
                <ftui-chart-data label="PV kWh Tag" type="bar" color="yellow" log="lp" spec="DbLog:logdb,offset=-60*60*24:SUN_2000_Ertrag:Schalter_SUN_2000_ENERGY_Total_EnergyDayLast"></ftui-chart-data>
                <ftui-chart-controls units="day, month"></ftui-chart-controls>
        </ftui-chart>

Ich würde gerne sowas wie eine Toleranz einbauen die mehrere Sekunden abdeckt. Also alle Werte von 0-5 Sekunden kriegen den Wert 0.

OddFhem hatte hier in einem alten post schon mal mit "ts" gearbeitet
<ftui-chart-data
  [update]="Gateway:connection:time"
  log="logdb"
  spec="Gateway:connection:0::$val=((($ts)=~':.8:..$')?8:(($val)=~'active'?4:0))"

Jemand einen Plan wie man sowas macht?

Gruß
Eisix

mr_petz

@Eisix
Du meist bestimmt das:
https://forum.fhem.de/index.php?topic=117779.msg1191097#msg1191097
$ts bringt glaube bei Filelog nichts? Bin ich auch überfragt.

Ich weis nicht ob das auch mit DbLog funzt. Mit Filelog schon:
$fld[0]=~'.*:..:.0|.*:..:.1|.*:..:.2|.*:..:.3|.*:..:.4|.*:..:.5'?0:$fld[3]
hier werden alle Sekunden die auf 0-5 enden, auf 0 gesetzt.
Geht bestimmt auch eleganter/kürzer...
$fld[0]ist hier der timestamp.
$fld[3] ist das value.

LG


Eisix

Hallo mr_petz,

für dblog ist mir eine Möglichkeit eingefallen. Und zwar verschiebe ich über offset das ganze ja um einen Tag.

spec="DbLog:logdb,offset=-86400:ShellyEM3_Zaehler:ShellyEM3_Zaehlerstand_EnergyDayLast"

wenn ich es jetzt schaffe diesen offset Wert über die Sekunden auszuwählen sollte es funktionieren.

Sowas in der Art. Syntax ist so aber nicht korrekt.
spec="DbLog:logdb,offset=(~'.*:..:.0'?-86400|~'.*:..:.1'?-86401|~'.*:..:.2'?-86402):SUN_2000_Ertrag:Schalter_SUN_2000_ENERGY_Total_EnergyDayLast"
Verschiedene offset Werte habe ich schon getestet und damit wurden auch die mit dem entsprechenden Timestamp angezeigt.
Eine Idee wie das gehen könnte?

Gruß
Eisix

mr_petz

Vll so in der Art?:
$ts=~ '.*:..:.0' ? offset=-86400 : '.*:..:.1' ? offset=-86401 : '.*:..:.2' ? offset=-86402 : 0
? = then
: = else
| = or
alles in Hochkommas = regexp
Ich weis nur nicht wie der $ts aussieht.
OdfFhem hat gerade wenig Zeit zum unterstützen...

LG

Eisix

Hallo,

wie kriege ich das ganze vom rest getrennt? Mit einfachen ( ) funktioniert es nicht



spec="DbLog:logdb,($ts=~':00:01$' ? offset=-86401 : offset=-86400):ShellyEM3_Zaehler:ShellyEM3_Zaehlerstand_EnergyDayLast"


Gruß
Eisix

mr_petz

Ok. Ich kann es leider nicht testen. Tut mir leid. Ein Versuch habe ich aber noch:
offset=($ts=~':00:01$' ? -86401 : -86400)
Ist vll das selbe, aber versuch macht gluch...

LG

Eisix

#310
Hallo mr_petz,

Versucht macht Aua. Fhem crasht  ;D

Denke aber das ist nah dran.

Wenn ich es so probiere kriege ich zumindest was im Log
offset=(~':00:01$' ? offset=-86401 : offset=-86400)

lp: offset=(~': Can't find string terminator "'" anywhere before EOF at (eval 3509) line 1.

DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '2023-07-01 00:00:00', '%Y-%m-%d %H:%i:%s') AND TIMESTAMP <= STR_TO_DATE('2023...' at line 6 [for Statement "SELECT
                      DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H:%i:%s'),
                      DEVICE,
                      READING,
                      VALUE
                       FROM history WHERE 1=1 AND DEVICE = '00' AND READING = '01$'' AND TIMESTAMP >= STR_TO_DATE('2023-07-01 00:00:00', '%Y-%m-%d %H:%i:%s') AND TIMESTAMP <= STR_TO_DATE('2023-08-01 00:00:00', '%Y-%m-%d %H:%i:%s') ORDER BY TIMESTAMP"] at ./FHEM/93_DbLog.pm line 6613.


Gruß
Eisix

mr_petz

#311
Tut mir leid. Da kann ich nichts mehr machen. Kann es selber nicht testen. Sonst gern. Vllt das $ noch weg.
Du brauchst OdfFhem oder einen anderen Wissenden...
LG

Edit:
habe gerade nochmal nachgelesen:
https://wiki.fhem.de/wiki/LogProxy#M%C3%B6gliche_%3Coptions%3E
da geht vllt nur was mit postFn?
offset ist eine reine Zeitangabe oder Zeitberechnung.

LG

M.Piet

Zitat von: mr_petz am 29 Juni 2023, 18:32:04
Zitat von: M.Piet am 29 Juni 2023, 15:21:43
Zitat von: mr_petz am 27 Juni 2023, 14:50:07Gerade nachgestellt und getestet. Es läuft bei mir so:
Hey :)

Grad wollte ich posten wie ich es gelöst habe.
Hintenrum...durch die Brust ins Auge. Aber danke für deine Anregung!

...

Hi

Die "Anregung" würde ich gern umgesetzt sehen ob sie funktioniert  ;)
LG
Hey,

war ein wenig im Urlaub, daher kommt das Ergebnis von dem Test jetzt,

Es hat in der Tat nun für einen Strich gesorgt. Aber der passt so gar nicht zu den Daten.

<ftui-chart-data line label="Solar aktiv" color="warning" log="Pool_Solar_Stellmotor" spec="3:HMW_IO_12_Sw14_DR_NEQ0308160_01::$fld[3]=~'on'?1:0"
y-axis-id="y1"></ftui-chart-data>

2023-07-07_10:00:00 HMW_IO_12_Sw14_DR_NEQ0308160_01 on
2023-07-07_17:09:01 HMW_IO_12_Sw14_DR_NEQ0308160_01 off
2023-07-07_17:21:13 HMW_IO_12_Sw14_DR_NEQ0308160_01 on
2023-07-07_20:30:00 HMW_IO_12_Sw14_DR_NEQ0308160_01 off
2023-07-08_10:00:00 HMW_IO_12_Sw14_DR_NEQ0308160_01 on
2023-07-08_20:30:00 HMW_IO_12_Sw14_DR_NEQ0308160_01 off
2023-07-09_10:00:01 HMW_IO_12_Sw14_DR_NEQ0308160_01 on
2023-07-09_20:30:00 HMW_IO_12_Sw14_DR_NEQ0308160_01 off
2023-07-10_10:00:03 HMW_IO_12_Sw14_DR_NEQ0308160_01 on
2023-07-10_20:30:00 HMW_IO_12_Sw14_DR_NEQ0308160_01 off
2023-07-11_10:00:00 HMW_IO_12_Sw14_DR_NEQ0308160_01 on
2023-07-11_20:30:00 HMW_IO_12_Sw14_DR_NEQ0308160_01 off
2023-07-12_10:00:00 HMW_IO_12_Sw14_DR_NEQ0308160_01 on
2023-07-12_20:30:00 HMW_IO_12_Sw14_DR_NEQ0308160_01 off
2023-07-13_10:00:00 HMW_IO_12_Sw14_DR_NEQ0308160_01 on
2023-07-13_20:30:00 HMW_IO_12_Sw14_DR_NEQ0308160_01 off

Und wenn ich es mit type="bar" ergänze, habe ich gar keine gelbe Anzeige mehr.

M.Piet

Hierzu mache ich ein neues Posting auf, da es mit der anderen Sache nichts zu tun hat.

Ich verstehe den Sinn nicht, wie der "Bar" arbeitet. Oder mache ich hier einen gewaltigen Denkfehler?

Nehme ich den 11.08. mal als Beispiel.

2023-08-10_20:30:17 DummyLogSolar 0
2023-08-11_10:01:55 DummyLogSolar 1
2023-08-11_20:30:18 DummyLogSolar 0
2023-08-15_09:30:05 DummyLogSolar 0

Ich hätte einen "Bar" erwartet, der von 10:01 bis 20:30 geht (siehe Anhang "SOLL-Zustand).
Warum sieht es so aus wie auf dem Screenshot (IST-Zustand)?

<ftui-chart-data type="bar" label="Solar aktiv" color="warning" log="FileLog_Pool_Solar_Status" spec="3"
y-axis-id="y1"></ftui-chart-data>
      

Vielen Dank für die Aufklärung. :)

mr_petz

#314
@M.Piet
Dein Bsp hat 0 1 0 0 als Zeitdaten über den Zeitraum und da wird nur 10:01 mit 1 als Bar angezeigt.
0 und 1 heißt einfach kein bzw ein Datenpunkt.

LG