Hallo.
Habe eine readingsgroup für strompreis. Wie muss ich die Definition anstellen, um in jeder Zeile heute u. Morgen darzustellen, statt jetzt unterhalb?
DEF <Uhrzeit>,<cent/kWh> Strompreis:.*h EPEXSPOTAT:max EPEXSPOTAT:min EPEXSPOTAT:middle Strompreis_morgen:.*h
FUUID 65670c03-f33f-6462-6fb0-841ae7fdb411562c
NAME smartenergy
NR 34486
NTFY_ORDER 50-smartenergy
STATE Initialized
TYPE readingsGroup
changed 0
mayBeVisible 1
CONTENT:
EPEXSPOTAT 1
Strompreis 1
Strompreis_morgen 1
CONTENT2:
DEVICES:
ARRAY(0x684bcc0)
ARRAY(0x61da268)
ARRAY(0x674c8d8)
ARRAY(0x6211488)
ARRAY(0x6a16ff8)
ARRAY(0x5f8f7d0)
READINGS:
fhem:
lastDefChange 233
last_update 1701280353.57994
helper:
DEF
mapping $READING
valueStyle {
if( $READING =~ /h/ && $VALUE > 20 ){ 'style="color:red"' }
elsif($READING =~ /h/ && $VALUE > 10){ 'style="color:orange"' }
elsif( $READING =~ /h/ && $VALUE <= 10 ){ 'style="color:green"' }
}
positions:
EPEXSPOTAT.max 3:1
EPEXSPOTAT.middle 5:1
EPEXSPOTAT.min 4:1
Strompreis.00-01h 2:1
Strompreis.01-02h 2:2
Strompreis.02-03h 2:3
Strompreis.03-04h 2:4
Strompreis.04-05h 2:5
Strompreis.05-06h 2:6
Strompreis.06-07h 2:7
Strompreis.07-08h 2:8
Strompreis.08-09h 2:9
Strompreis.09-10h 2:10
Strompreis.10-11h 2:11
Strompreis.11-12h 2:12
Strompreis.12-13h 2:13
Strompreis.13-14h 2:14
Strompreis.14-15h 2:15
Strompreis.15-16h 2:16
Strompreis.16-17h 2:17
Strompreis.17-18h 2:18
Strompreis.18-19h 2:19
Strompreis.19-20h 2:20
Strompreis.20-21h 2:21
Strompreis.21-22h 2:22
Strompreis.22-23h 2:23
Strompreis.23-24h 2:24
Strompreis_morgen.00-01h 6:1
Strompreis_morgen.01-02h 6:2
Strompreis_morgen.02-03h 6:3
Strompreis_morgen.03-04h 6:4
Strompreis_morgen.04-05h 6:5
Strompreis_morgen.05-06h 6:6
Strompreis_morgen.06-07h 6:7
Strompreis_morgen.07-08h 6:8
Strompreis_morgen.08-09h 6:9
Strompreis_morgen.09-10h 6:10
Strompreis_morgen.10-11h 6:11
Strompreis_morgen.11-12h 6:12
Strompreis_morgen.12-13h 6:13
Strompreis_morgen.13-14h 6:14
Strompreis_morgen.14-15h 6:15
Strompreis_morgen.15-16h 6:16
Strompreis_morgen.16-17h 6:17
Strompreis_morgen.17-18h 6:18
Strompreis_morgen.18-19h 6:19
values:
formated:
undef
ARRAY(0x66f0818)
ARRAY(0x675f010)
ARRAY(0x61dbe08)
ARRAY(0x6b131e0)
ARRAY(0x684f7a0)
ARRAY(0x6829800)
ARRAY(0x67197b8)
ARRAY(0x6737b20)
ARRAY(0x6820578)
ARRAY(0x6860be0)
ARRAY(0x5b908a8)
ARRAY(0x6abd620)
ARRAY(0x6a21eb8)
ARRAY(0x67536d8)
ARRAY(0x64d9b30)
ARRAY(0x6216bc8)
ARRAY(0x6750840)
ARRAY(0x5fd2e58)
ARRAY(0x64729d8)
ARRAY(0x66ef9c0)
ARRAY(0x6a1beb8)
ARRAY(0x6827488)
ARRAY(0x6707170)
ARRAY(0x684f860)
orig:
undef
ARRAY(0x68000e8)
ARRAY(0x672d928)
ARRAY(0x6b13990)
ARRAY(0x6877ea0)
ARRAY(0x63df1f8)
ARRAY(0x6a219d8)
ARRAY(0x5b0b868)
ARRAY(0x5fc8588)
ARRAY(0x578b660)
ARRAY(0x673c638)
ARRAY(0x6856000)
ARRAY(0x643bb70)
ARRAY(0x66f2550)
ARRAY(0x6a197c8)
ARRAY(0x6446238)
ARRAY(0x643fce8)
ARRAY(0x68e1f98)
ARRAY(0x5cb5d88)
ARRAY(0x6a22410)
ARRAY(0x68e35d8)
ARRAY(0x67fd4b8)
ARRAY(0x675ca18)
ARRAY(0x6470508)
ARRAY(0x5facbd8)
prefixsuffix:
undef
ARRAY(0x6212d68)
ARRAY(0x5bf6e90)
ARRAY(0x6764778)
ARRAY(0x6760718)
ARRAY(0x5fd5478)
ARRAY(0x6844f18)
ARRAY(0x6523c18)
ARRAY(0x6712898)
ARRAY(0x6ad9088)
ARRAY(0x67640c8)
ARRAY(0x6a168e8)
ARRAY(0x66da730)
ARRAY(0x6764640)
ARRAY(0x66e2c10)
ARRAY(0x5fad360)
ARRAY(0x6abef08)
ARRAY(0x6b13c30)
ARRAY(0x68e2a80)
ARRAY(0x6287818)
ARRAY(0x62117e8)
ARRAY(0x5ae18c8)
ARRAY(0x5fdae18)
ARRAY(0x648cc30)
ARRAY(0x684fc98)
Attributes:
mapping $READING
nolinks 1
notime 1
room readingsGroup
valueStyle {
if( $READING =~ /h/ && $VALUE > 20 ){ 'style="color:red"' }
elsif($READING =~ /h/ && $VALUE > 10){ 'style="color:orange"' }
elsif( $READING =~ /h/ && $VALUE <= 10 ){ 'style="color:green"' }
}
https://wiki.fhem.de/wiki/ReadingsGroup#Ausrichtung_der_Tabelle_drehen_(horizontal/vertikal) (https://wiki.fhem.de/wiki/ReadingsGroup#Ausrichtung_der_Tabelle_drehen_(horizontal/vertikal))
DANKE
klappt nur zum teil.
leider keine aktualisierung von morgen.
CFGFN
DEF <cent/kWh>,<heute>,<morgen>
Strompreis:<00-01h>,00-01h,Strompreis_morgen:<00-01h>,00-01h
Strompreis:<01-02h>,01-02h,Strompreis_morgen:<01-02h>,01-02h
Strompreis:<02-03h>,02-03h,Strompreis_morgen:<02-03h>,02-03h
Strompreis:<03-04h>,03-04h,Strompreis_morgen:<03-04h>,03-04h
Strompreis:<04-05h>,04-05h,Strompreis_morgen:<04-05h>,04-05h
Strompreis:<05-06h>,05-06h,Strompreis_morgen:<05-06h>,05-06h
Strompreis:<06-07h>,06-07h,Strompreis_morgen:<06-07h>,06-07h
Strompreis:<07-08h>,07-08h,Strompreis_morgen:<07-08h>,07-08h
Strompreis:<08-09h>,08-09h,Strompreis_morgen:<08-09h>,08-09h
Strompreis:<09-10h>,09-10h,Strompreis_morgen:<09-10h>,09-10h
Strompreis:<10-11h>,10-11h,Strompreis_morgen:<10-11h>,10-11h
Strompreis:<11-12h>,11-12h,Strompreis_morgen:<11-12h>,11-12h
Strompreis:<12-13h>,12-13h,Strompreis_morgen:<12-13h>,12-13h
Strompreis:<13-14h>,13-14h,Strompreis_morgen:<13-14h>,13-14h
Strompreis:<14-15h>,14-15h,Strompreis_morgen:<14-15h>,14-15h
Strompreis:<15-16h>,15-16h,Strompreis_morgen:<15-16h>,15-16h
Strompreis:<16-17h>,16-17h,Strompreis_morgen:<16-17h>,16-17h
Strompreis:<17-18h>,17-18h,Strompreis_morgen:<17-18h>,17-18h
Strompreis:<18-19h>,18-19h,Strompreis_morgen:<18-19h>,18-19h
Strompreis:<19-20h>,19-20h,Strompreis_morgen:<19-20h>,19-20h
Strompreis:<20-21h>,20-21h,Strompreis_morgen:<20-21h>,20-21h
Strompreis:<21-22h>,21-22h,Strompreis_morgen:<21-22h>,21-22h
Strompreis:<22-23h>,22-23h,Strompreis_morgen:<22-23h>,22-23h
Strompreis:<23-24h>,23-24h,Strompreis_morgen:<23-24h>,23-24h
EPEXSPOTAT:<max>,max EPEXSPOTAT:<min>,min EPEXSPOTAT:<middle>,middle
FUUID 65670c03-f33f-6462-6fb0-841ae7fdb411562c
NAME smartenergy
NR 34486
NTFY_ORDER 50-smartenergy
STATE Initialized
TYPE readingsGroup
changed 0
mayBeVisible 1
CONTENT:
EPEXSPOTAT 1
Strompreis 1
CONTENT2:
DEVICES:
ARRAY(0x624fe88)
ARRAY(0x5b77cc8)
ARRAY(0x68252b8)
ARRAY(0x5b9e3d0)
ARRAY(0x5f8a4f0)
ARRAY(0x674c620)
ARRAY(0x6a17ad8)
ARRAY(0x6a1d570)
ARRAY(0x6c259b0)
ARRAY(0x5cace98)
ARRAY(0x6806a50)
ARRAY(0x6a17520)
ARRAY(0x6c1a648)
ARRAY(0x63c7ed8)
ARRAY(0x6c18d38)
ARRAY(0x6aaafb0)
ARRAY(0x69fe270)
ARRAY(0x627d730)
ARRAY(0x627d190)
ARRAY(0x6c359a0)
ARRAY(0x5f8d870)
ARRAY(0x6c28d50)
ARRAY(0x64de690)
ARRAY(0x620fbb8)
ARRAY(0x61b8348)
ARRAY(0x6750238)
ARRAY(0x6752ae8)
ARRAY(0x6b134c8)
READINGS:
fhem:
lastDefChange 311
last_update 1701361302.88093
helper:
DEF
valueStyle {
if( $READING =~ /h/ && $VALUE > 20 ){ 'style="color:red"' }
elsif($READING =~ /h/ && $VALUE > 10){ 'style="color:orange"' }
elsif( $READING =~ /h/ && $VALUE <= 10 ){ 'style="color:green"' }
}
positions:
EPEXSPOTAT.max 26:2
EPEXSPOTAT.middle 28:2
EPEXSPOTAT.min 27:2
Strompreis.00-01h 2:2,2:3
Strompreis.01-02h 3:2,3:3
Strompreis.02-03h 4:2,4:3
Strompreis.03-04h 5:2,5:3
Strompreis.04-05h 6:2,6:3
Strompreis.05-06h 7:2,7:3
Strompreis.06-07h 8:2,8:3
Strompreis.07-08h 9:2,9:3
Strompreis.08-09h 10:2,10:3
Strompreis.09-10h 11:2,11:3
Strompreis.10-11h 12:2,12:3
Strompreis.11-12h 13:2,13:3
Strompreis.12-13h 14:2,14:3
Strompreis.13-14h 15:2,15:3
Strompreis.14-15h 16:2,16:3
Strompreis.15-16h 17:2,17:3
Strompreis.16-17h 18:2,18:3
Strompreis.17-18h 19:2,19:3
Strompreis.18-19h 20:2,20:3
Strompreis.19-20h 21:2,21:3
Strompreis.20-21h 22:2,22:3
Strompreis.21-22h 23:2,23:3
Strompreis.22-23h 24:2,24:3
Strompreis.23-24h 25:2,25:3
values:
formated:
undef
undef
ARRAY(0x2db3e80)
ARRAY(0x6c247d8)
orig:
undef
undef
ARRAY(0x671cca0)
ARRAY(0x684b780)
prefixsuffix:
undef
undef
ARRAY(0x6c4d038)
ARRAY(0x6835ee0)
Attributes:
nolinks 1
nonames 1
notime 1
room readingsGroup
valueStyle {
if( $READING =~ /h/ && $VALUE > 20 ){ 'style="color:red"' }
elsif($READING =~ /h/ && $VALUE > 10){ 'styl
Muss es nicht am Beispiel der ersten Zeile heißen:
Strompreis:<00-01h>,00-01h,00-01h@Strompreis_morgen
Da wir auch stündliche Strompreise haben, wenn auch über Tibber, reicht mir eine zweistufige Farbkala nicht aus (der nahezu-Durchschnittspreis hat jeweils genau die gleiche Farbe wie Min und Max.
Deshalb habe ich eine vierstufige Farbskala gemacht: Erstmal den Durchschnittspreis ermitteln (was Du vermutlich auch hast), dann aber nochmal den günstig-Durchschnitt aus Gesamt-Durchschnitt und Minimalpreis und den hoch-Durchschnitt zwischen Gesamt-Durchschnitt und Maximalpreis.
Das DOIF dazu sieht so aus:
([myTibber])
(setreading dummy_Strompreise heute_min [#min:"^myTibber$":"heute.*"],
setreading dummy_Strompreise heute_max [#max:"^myTibber$":"heute.*"],
setreading dummy_Strompreise Durchschnitt_1 [#average:"^myTibber$":"heute.*"],
setreading dummy_Strompreise heute_hoch {([#average:"^myTibber$":"heute.*"]+[#max:"^myTibber$":"heute.*"])/2},
setreading dummy_Strompreise heute_niedrig {([#average:"^myTibber$":"heute.*"]+[#min:"^myTibber$":"heute.*"])/2},
[#min:"^myTibber$":"morgen.*"] ne [Strompreise:morgen_min])
(setreading dummy_Strompreise morgen_min [#min:"^myTibber$":"morgen.*"],
setreading dummy_Strompreise morgen_max [#max:"^myTibber$":"morgen.*"],
setreading dummy_Strompreise Durchschnitt_2 [#average:"^myTibber$":"morgen.*"],
setreading dummy_Strompreise morgen_hoch {([#average:"^myTibber$":"morgen.*"]+[#max:"^myTibber$":"morgen.*"])/2},
setreading dummy_Strompreise morgen_niedrig {([#average:"^myTibber$":"morgen.*"]+[#min:"^myTibber$":"morgen.*"])/2})
Und ValueStyle in der ReadingsGroup entsprechend so:
{ if ($READING =~ "heute" && $VALUE > ReadingsVal("dummy_Strompreise", "heute_hoch", "")) { 'style="color:red"'}
elsif ($READING =~ "heute" && $VALUE > ReadingsVal("dummy_Strompreise", "Durchschnitt_1", "")) { 'style="color:orange"'}
elsif ($READING =~ "heute" && $VALUE < ReadingsVal("dummy_Strompreise", "heute_niedrig", "")) { 'style="color:green"'}
elsif ($READING =~ "heute") { 'style="color:yellow"'}
elsif ($READING =~ "morgen" && $VALUE > ReadingsVal("dummy_Strompreise", "morgen_hoch", "")) { 'style="color:red"'}
elsif ($READING =~ "morgen" && $VALUE > ReadingsVal("dummy_Strompreise", "Durchschnitt_2", "")) { 'style="color:orange"'}
elsif ($READING =~ "morgen" && $VALUE < ReadingsVal("dummy_Strompreise", "morgen_niedrig", "")) { 'style="color:green"'}
elsif ($READING =~ "morgen") { 'style="color:yellow"'}
Und da 3 Nachkommastellen bei Cent-Beträgen nicht die große Rolle spielen, werden die Beträge noch auf eine Nachkommastelle gekürzt, mit valueFormat in der ReadingsGroup:
{'heute-00' => "%.1f",'heute-01' => "%.1f",'heute-02' => "%.1f",'heute-03' => "%.1f",'heute-04' => "%.1f",'heute-05' => "%.1f",'heute-06' => "%.1f",'heute-07' => "%.1f",'heute-08' => "%.1f",'heute-09' => "%.1f",'heute-10' => "%.1f",'heute-11' => "%.1f",'heute-12' => "%.1f",'heute-13' => "%.1f",'heute-14' => "%.1f",'heute-15' => "%.1f",'heute-16' => "%.1f",'heute-17' => "%.1f",'heute-18' => "%.1f",'heute-19' => "%.1f",'heute-20' => "%.1f",'heute-21' => "%.1f",'heute-22' => "%.1f",'heute-23' => "%.1f",'morgen-00' => "%.1f",'morgen-01' => "%.1f",'morgen-02' => "%.1f",'morgen-03' => "%.1f",'morgen-04' => "%.1f",'morgen-05' => "%.1f",'morgen-06' => "%.1f",'morgen-07' => "%.1f",'morgen-08' => "%.1f",'morgen-09' => "%.1f",'morgen-10' => "%.1f",'morgen-11' => "%.1f",'morgen-12' => "%.1f",'morgen-13' => "%.1f",'morgen-14' => "%.1f",'morgen-15' => "%.1f",'morgen-16' => "%.1f",'morgen-17' => "%.1f",'morgen-18' => "%.1f",'morgen-19' => "%.1f",'morgen-20' => "%.1f",'morgen-21' => "%.1f",'morgen-22' => "%.1f",'morgen-23' => "%.1f",'Durchschnitt_1' => "%.1f",'Durchschnitt_2' => "%.1f"}
Und damit man die aktuelle Stunde erkennt, habe ich die Zeiten in einem dummy und lasse stündlich die aktuelle Zahl durch einen Pfeil ersetzen. Dazu das folgende DOIF (bei mir steht nur "05:" statt "05-06h"):
([00:00])
(setreading dummy_Zeitmarkierung 23 23:, setreading dummy_Zeitmarkierung 00 -->, deletereading myTibber heute.*, deletereading myTibber morgen.*, deletereading dummy_Strompreise Durchschnitt.*)
DOELSEIF
([01:00])
(setreading dummy_Zeitmarkierung 00 00:, setreading dummy_Zeitmarkierung 01 -->)
DOELSEIF
([02:00])
(setreading dummy_Zeitmarkierung 01 01:, setreading dummy_Zeitmarkierung 02 -->)
DOELSEIF
([03:00])
(setreading dummy_Zeitmarkierung 02 02:, setreading dummy_Zeitmarkierung 03 -->)
DOELSEIF
([04:00])
(setreading dummy_Zeitmarkierung 03 03:, setreading dummy_Zeitmarkierung 04 -->)
DOELSEIF
([05:00])
(setreading dummy_Zeitmarkierung 04 04:, setreading dummy_Zeitmarkierung 05 -->)
DOELSEIF
([06:00])
(setreading dummy_Zeitmarkierung 05 05:, setreading dummy_Zeitmarkierung 06 -->)
DOELSEIF
([07:00])
(setreading dummy_Zeitmarkierung 06 06:, setreading dummy_Zeitmarkierung 07 -->)
DOELSEIF
([08:00])
(setreading dummy_Zeitmarkierung 07 07:, setreading dummy_Zeitmarkierung 08 -->)
DOELSEIF
([09:00])
(setreading dummy_Zeitmarkierung 08 08:, setreading dummy_Zeitmarkierung 09 -->)
DOELSEIF
([10:00])
(setreading dummy_Zeitmarkierung 09 09:, setreading dummy_Zeitmarkierung 10 -->)
DOELSEIF
([11:00])
(setreading dummy_Zeitmarkierung 10 10:, setreading dummy_Zeitmarkierung 11 -->)
DOELSEIF
([12:00])
(setreading dummy_Zeitmarkierung 11 11:, setreading dummy_Zeitmarkierung 12 -->)
DOELSEIF
([13:00])
(setreading dummy_Zeitmarkierung 12 12:, setreading dummy_Zeitmarkierung 13 -->)
DOELSEIF
([14:00])
(setreading dummy_Zeitmarkierung 13 13:, setreading dummy_Zeitmarkierung 14 -->)
DOELSEIF
([15:00])
(setreading dummy_Zeitmarkierung 14 14:, setreading dummy_Zeitmarkierung 15 -->)
DOELSEIF
([16:00])
(setreading dummy_Zeitmarkierung 15 15:, setreading dummy_Zeitmarkierung 16 -->)
DOELSEIF
([17:00])
(setreading dummy_Zeitmarkierung 16 16:, setreading dummy_Zeitmarkierung 17 -->)
DOELSEIF
([18:00])
(setreading dummy_Zeitmarkierung 17 17:, setreading dummy_Zeitmarkierung 18 -->)
DOELSEIF
([19:00])
(setreading dummy_Zeitmarkierung 18 18:, setreading dummy_Zeitmarkierung 19 -->)
DOELSEIF
([20:00])
(setreading dummy_Zeitmarkierung 19 19:, setreading dummy_Zeitmarkierung 20 -->)
DOELSEIF
([21:00])
(setreading dummy_Zeitmarkierung 20 20:, setreading dummy_Zeitmarkierung 21 -->)
DOELSEIF
([22:00])
(setreading dummy_Zeitmarkierung 21 21:, setreading dummy_Zeitmarkierung 22 -->)
DOELSEIF
([23:00])
(setreading dummy_Zeitmarkierung 22 22:, setreading dummy_Zeitmarkierung 23 -->)
Das ganze sieht dann so aus (jetzt am Vormittag noch ohne die Preise von morgen - und bei mir sind größere Lücken zwischen den Zeilen, weil das so besser auf dem Floorplan aussieht. Heute Mal wenig gelb, das ist sonst anders):
SCR-20231201-cqt.png
Zitat von: MaJu am 01 Dezember 2023, 08:51:28Muss es nicht am Beispiel der ersten Zeile heißen:
Strompreis:<00-01h>,00-01h,00-01h@Strompreis_morgen
Du bist mein Held.
DANKE.
Den rest werd ich mir ansehen.